我首先要说的是,我知道有两个问题完全与此有关,但没有一个问题完全是我的问题。另外,我想补充一点,就是我已经为此花了一段时间。
我的问题是我正在尝试创建自动的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和没有任何模式输入它们,但都无济于事。
请帮我彻底解决这个问题。
答案 0 :(得分:1)
我已经开始工作了,这就是方法:
对于以后遇到同样问题的任何人,我的技巧是为该项目创建一个新的Google帐户。我知道这可能对你们中的许多人来说都是不可能的,但是它对我有用,我只能推测原因。
重申一下,我的解决方法如下:
如果我要大胆地猜测,我认为OAuth运动场的某些东西在我们测试的早期就搞砸了。为什么这没有弄乱我没有答案的Google Calendar API中的其他功能,但这是我可以想象的开始发挥作用的唯一点。
我希望这对您至少有帮助。如果我5年后回到这里寻找答案,至少我会有所帮助。