API календаря Google возвращает неавторизованный

#google-calendar-api #google-api-java-client

#google-calendar-api #google-api-java-client

Вопрос:

У меня есть клиент календаря, который я создаю следующим образом

 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:

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

В настоящее время API календаря Google поддерживает уведомления об изменениях в Acl, списке календаря, событиях и ресурсах настроек.

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

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

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

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

Комментарии:

1. Я слежу за событиями, которые поддерживаются

2. Я отредактировал ответ. То же самое и с событиями. Основной запрос аналогичен ресурсам настроек.