#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. Я отредактировал ответ. То же самое и с событиями. Основной запрос аналогичен ресурсам настроек.