我最近在Bash中編寫了一個Pushbullet Linux命令行客戶端。我想允許用戶通過Oauth授予訪問其Pushbullet帳戶的權限,但我遇到了一些麻煩。有一天,我剛剛爲Google Drive API做了Oauth。它非常簡單,只需要幾行代碼。說實話,Oauth section in the Pushbullet API docs是有點不清楚。Pushbullet Oauth使用Bash和捲曲
讓我知道我知道所需的步驟:用URL應用程序內產生
- 發送用戶Pushbullet網站:(REDIRECT_URL指定URL,用戶是重新CLIENT_ID和REDIRECT_URL -directed到授權訪問Pushbullet後,除了RESPONSE_TYPE,或者令牌或代碼)
- 用戶授予或拒絕訪問他們的帳戶Pushbullet
- 如果訪問被許可,用戶被髮送到REDIRECT_URL
- 客戶必須獲得嵌入REDIRECT_URL中的access_token然後追加到的access_token未來所有的請求
關於是否正確的聲音?
我的腳本在瀏覽器中成功加載認證URL,但是當我點擊「批准」時,出現以下錯誤:The param 'redirect_uri' has an invalid value
。我使用了Pushbullet設置的「客戶端」部分中列出的redirect_uri。所以,這: https://www.pushbullet.com/login-success/access_token=<access token>&response_type=token&scope=everything
我使用正確的網址嗎?這是一個命令行客戶端,我沒有它的域名。不過這應該不重要,對嗎? Oauth總是需要通過瀏覽器進行身份驗證,還是可以通過某種Web服務調用完成(這是GDrive API的工作方式)?理想情況下,我會捲曲處理所有內容,而不必擔心加載Web瀏覽器。
至於我的問題:我仍然無法讓OAuth使用'response_type = token'。我收到關於無效響應類型的錯誤。我使用了你建議的redirect_uri。但是,我能夠使用'response_type = code'來處理問題,所以解決了問題。 –
我必須承認我對這個東西相當陌生,所以我的困惑可能是由於缺乏經驗而不是糟糕的文檔。順便說一句,你製作的圖表很好,很清楚。說實話,Google的文檔並不好。我發現爲Drive更輕鬆地實施OAuth,因爲這裏有很多關於Drive API的問題。例如,谷歌在解釋範圍方面做得不好。 以下是Google'e Drive REST API文檔的鏈接(並按照其中包含的客戶端鏈接):https://developers.google.com/drive/web/about-auth –