2014-09-04 79 views
4

現在是時候去SE了,因爲這花了我4個多小時。將webhook設置爲'未經授權的WebHook回調通道'。一切都應該沒問題

我正在嘗試爲來自Google Drive API的推送通知設置webhook(https://app.example.com/notications)。

其建立的一切之後,我的錯誤:

... 
    errors": [ 
     { 
      "domain": "global", 
      "reason": "push.webhookUrlUnauthorized", 
      "message": "Unauthorized WebHook callback channel: https://app.example.com" 
     } 
    ], 
    ... 

有幾個是談這個問題對谷歌的結果(其中大部分是在這裏SE)的。所提出的解決方案似乎都不適用於我。不用說,如果我有一些東西的話,我會把頭髮撕得粉碎。

這我什麼我已經試過:

正如所解釋的here有一些要求:

  1. 第1步:確認您擁有該域。 (使用網站管理員工具完成網站驗證流程)

    註冊app.example.com,通過網站管理員工具。另外也驗證example.com雖然這應該沒關係。 檢查!

  2. 第2步:註冊你的域名:

    • 轉到谷歌開發者控制檯。
    • 選擇或創建一個項目。
    • 在左邊的邊欄中,點擊API &驗證碼,然後點擊推送。
    • 點擊添加域名。
    • 填寫表單,然後再次點擊添加域。

    Done for app.example.com檢查!

  3. 請注意,只有當您的Web服務器上安裝了有效的SSL證書時,Drive API才能夠將通知發送到此HTTPS地址。無效證書包括:

    • 自簽名證書。
    • 由不受信任來源簽名的證書。
    • 已撤銷的證書。
    • 具有與目標主機名不匹配的主題的證書。

    我所做的:

    • 我設置app.example.com與SSL證書。
    • 此外,端點是可到達的,所有內容都會檢出。
    • SSL checker已經驗證了一切正常(5滴答)。即使SSL鏈安裝正確。 檢查!
  4. 構建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請求)運行所有這些,所以沒有可能會干擾我的應用程序。

究竟是什麼問題?

+1

你得到這方面的任何正確的答案。 – 2016-10-07 12:25:43

+0

我有這個相同的問題,並最終修復它在開發人員控制檯。在域名驗證標籤中,我已將我的網站列爲_example.com_。一旦我將其更改爲_「https:// example.com」_,它終於有效。希望這可以幫助別人! ;) – Richard 2016-11-01 21:12:25

+0

@Richard:op在這裏。目前沒有在這方面的工作,但對於未來的裁判你是否意味着發佈'https:// example.com'包括雙正斜槓之後的空格? – 2016-11-02 01:28:18

回答

-4

第4步的POST機構地址:「https://app.captured.io/notifications」應該是「https://app.example.com/notications」。或者相反。無論哪種方式,它們都應該匹配,以便我們可以瞭解這僅僅是您的帖子中的拼寫錯誤還是真正的答案。 :)

哦;並在「https://app.example.com/notications」中,「通知」拼寫錯誤。它應該是:「https://app.example.com/notifications」。 ...或者周圍的其他方法,如果這是你的事:)

這也是值得注意的是,按他們的文檔:

A watch request will not be successful unless the current user or service account owns or has permission to access this resource.