API Календаря Google: Несанкционированный канал обратного вызова WebHook - PullRequest
0 голосов
/ 10 сентября 2018

Я хочу начать с того, что знаю, что есть пара вопросов, касающихся именно этого, но ни один из них не является моей проблемой.Кроме того, я хочу добавить, что я уже давно пытаюсь это сделать.

Моя проблема в том, что я пытаюсь создать автоматическое обновление канала Google, в частности канал просмотра событий.У меня уже есть полностью рабочая настройка, где мы можем синхронизировать оба пути с календарем Google.Единственная проблема, которая остается взломанной, заключается в том, что я в настоящее время создаю и обновляю каналы просмотра через Postman, что, по меньшей мере, не оптимально.

Я настроил служебную учетную запись, которая работает, как и ожидалось, когдавыборка, синхронизация, создание и удаление событий в нескольких календарях.У меня есть домен, который я успешно подтвердил право собственности, и сайт использует SSL из надежного источника.Как я уже сказал, все остальное работает, как и ожидалось.

К проблеме под рукой;При попытке создать новый канал просмотра в команде я получаю сообщение об ошибке в теме этого вопроса:

 {                                                                          
   "error": {                                                                
    "errors": [                                                              
     {                                                                       
      "domain": "global",                                                    
      "reason": "push.webhookUrlUnauthorized",                               
      "message": "Unauthorized WebHook callback channel: https://subdomain.yourdomain.app"  
     }                                                                       
    ],                                                                       
    "code": 401,                                                             
    "message": "Unauthorized WebHook callback channel: https://subdomain.yourdomain.app"    
   }                                                                         
  } 

(URL-адреса, конечно, примеры, так как я не хочу делиться правильныминформация на данный момент.)

Я следовал примерам, приведенным в других вопросах о точной проблеме, но они ничего не делают для меня, и все они, кажется, пинаются в темноте, поскольку документация очень мало говорит оэтот.Код, который создает канал, выглядит следующим образом:

$calendar = GoogleCalendarFactory::createForCalendarId($calendarId);
$service = $calendar->getService();

$channel = new Google_Service_Calendar_Channel();
$channel->setId('a-random-id');
$channel->setType('web_hook');
$channel->setAddress('https://subdomain.yourdomain.app');

$result = $service->events->watch($calendarId, $channel);

Я подтвердил право собственности на оба «subdomain.yourdomain.app» и «yourdomain.app», и оба они добавленыдомены в подтверждении моего домена.Я попытался ввести их как с HTTPS, HTTP и без какой-либо схемы, но безрезультатно.

Пожалуйста, помогите мне решить эту проблему раз и навсегда.

1 Ответ

0 голосов
/ 11 сентября 2018

Я получил это, и вот как:

Для тех, кто приезжает сюда в будущем с той же проблемой, мой совет - создать новую учетную запись Google для проекта.Я знаю, что это может быть невозможно для многих из вас, но это сработало для меня, и я могу только догадываться, почему.

Повторюсь, мое решение было следующим:

  • Создан новый аккаунт в google
  • Создан новый проект для приложения календаря
  • Создан новый аккаунт сервиса и установлен новый файл JSON на сайте
  • Подтверждена моя собственность надомен из новой учетной записи
  • Вошел в домен на странице подтверждения моего домена

Если я хочу дико догадаться, я думаю, что что-то с игровой площадкой OAuth на ранней стадии испортилосьнашего тестирования.Почему это не мешает другим функциям в API Календаря Google, за которые я не могу ответить, но это единственная точка, в которой я могу себе представить, чтобы начать действовать, как это было.

Я надеюсь, что это может помочь вхотя бы один из вас.И если я вернусь сюда через 5 лет в поисках ответа, по крайней мере, я помогу себе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...