是时候去SE了,因为现在花了我4个多小时.
我正在尝试为https://app.example.com/notications
来自Google Drive API的推送通知设置webhook().
设置完所有内容后,我收到错误:
... errors": [ { "domain": "global", "reason": "push.webhookUrlUnauthorized", "message": "Unauthorized WebHook callback channel: https://app.example.com" } ], ...
谷歌上有一些结果(其中大部分都在SE上)讨论这个问题.所提出的解决方案似乎都不适合我.毋庸置疑,如果我有一些东西,我会把我的头发撕掉.
这是我尝试过的:
如此处所述,有一些要求:
第1步:验证您是否拥有该域.(使用网站站长工具完成网站验证流程)
app.example.com
通过网站站长工具注册.另外还证实了example.com
这一点并不重要.校验!
第2步:注册您的域名:
转到Google Developers Console.
选择或创建项目.
在左侧边栏中,单击"API&auth",然后单击"推送".
单击"添加域".
填写表单,然后再次单击"添加域".
做完了app.example.com
.校验!
请注意,只有在您的Web服务器上安装了有效的SSL证书时,Drive API才能向此HTTPS地址发送通知.无效的证书包括:
自签名证书.
由不受信任的来源签署的证书.
已被撤销的证书.
主题与目标主机名不匹配的证书.
我做了什么:
我已经设置app.example.com
了SSL证书.
此外,端点可以访问,所有内容都可以检出.
SSL检查器已经验证一切正常(5个滴答).甚至SSL链也正确设置. 校验!
构造POST查询
到简单的https://www.googleapis.com/drive/v2/changes/watch
终点
包含Authorization: Bearer x
标题
包含Content-Type:application/json
标题
帖子包含如下的主体
{ "id": "someIdThatDoesntMatter", "type":"web_hook", "address": "https://app.example.com/notifications" }
校验!
我通过Postman(一个Chrome扩展程序来测试http请求)运行所有这些,所以我身边没有可以干扰的应用程序.
究竟是什么问题呢?