API календаря Google возвращает неавторизованный - PullRequest
0 голосов
/ 10 апреля 2019

У меня есть клиент календаря, который я строю вот так

public static Calendar getCalendar(Credential credentials) throws GeneralSecurityException, IOException {
        return new Calendar.Builder(GoogleNetHttpTransport.newTrustedTransport(), JSON_FACTORY, credentials)
                .setApplicationName(APPLICATION_NAME)
                .build();
    }

calendar.events().list("primary").execute() работает и возвращает результаты

Но этот жалуется 401: Несанкционированный

  public static String subscirbeToHook(Credential user, Calendar service) throws IOException {

        Channel content = new Channel()
                .setId(UUID.randomUUID().toString())
                .setType("web_hook")
                .setResourceUri("https://www.googleapis.com/calendar/v3/calendars/primary/events/watch")
                .setAddress("https://2e8e18e3.ngrok.io/");


        Channel channel = service.events()
                .watch("primary", content)
                .execute();


        return channel.getResourceId();
    }

Я запросил область действия https://www.googleapis.com/auth/calendar. Я потерян. Я попробовал другую комбинацию для ресурса URI

1 Ответ

0 голосов
/ 10 апреля 2019

Кажется, что вы не можете вносить изменения для resourceURI, поскольку в настоящее время он не поддерживается в Push-уведомлениях календаря .

В настоящее время API-интерфейс Календаря Google поддерживает уведомлениядля изменений в ресурсах Acl, CalendarList, Events и Settings.

Это поддерживаемые Ресурсы событий тело запроса:

{
  "id": string,
  "token": string,
  "type": string,
  "address": string,
  "params": {
    "ttl": string
  }
}

В случае успеха,этот метод возвращает тело ответа со следующей структурой:

{
  "kind": "api#channel",
  "id": string,
  "resourceId": string,
  "resourceUri": string,
  "token": string,
  "expiration": long
}
...