我一直在嘗試學習OAuth(1.0),並試圖通過訪問Google上的聯繫人來測試我的代碼。這很容易,因爲我不必建立朋友/消費者關係(Google只允許匿名/匿名用於消費者令牌),並且因爲Google有OAuth Playground來幫助我。Google OAuth 1.0 - 將範圍端口設置爲443(AuthSub令牌有錯誤範圍)
所以我把我的代碼,如下所示去
- 請求令牌:https://www.google.com/accounts/OAuthGetRequestToken?scope=https%3A%2F%2Fwww.google.com%2Fm8%2Ffeeds%2F
- 授權的請求令牌:https://www.google.com/accounts/OAuthAuthorizeToken
- 訪問令牌:https://www.google.com/accounts/OAuthGetAccessToken
一切似乎都與進展順利 - 我的請求令牌沒問題,授權很好,並且能夠獲得訪問令牌。然後我試圖讓一個請求https://www.google.com/m8/feeds/contacts/default/full/
唯一的問題是,我不斷收到此錯誤:「401:AuthSub憑證有錯誤的範圍」
我很困惑這個,因爲當我與提出同樣的要求在OAuth Playground中相同的消費者信息(http://googlecodesamples.com/oauth_playground/index.php)一切都可以正常工作。
最後,我發現了以下問題:HTTP/1.1 401 Token invalid - AuthSub token has wrong scope
頂端回答使我對我的解決方案 - 在我使用已寫入始終將端口443 HTTPS或JAR文件的一個有代碼80爲http。當我通過我的代碼並將端口更改爲-1時,我的請求運行良好,我能夠獲取我想要的信息。
不幸的是,我無法更改JAR文件中的代碼,所以我將不得不在我的最後解決問題。在回答這個問題,「喬納森說:
Another workaround would be to include the :443 in the token scope; it just has to match
我試圖改變我的請求令牌查詢字符串?scope=https%3A%2F%2Fwww.google.com **%3A443** %2Fm8%2Ffeeds%2F
和谷歌剛剛拒絕給我一個請求令牌 - 它給了我一個400錯誤說Invalid scope: https://www.google.com:443/m8/feeds/
。將https更改爲http並沒有做任何事情。我將如何處理喬納森(誰近一年沒有上網)的建議?
你使用哪個罐子自動附加端口?看起來這就是絆倒你的部分...... –
這是讓我絆倒的部分,但是沒有辦法解決這個問題。不知何故,我必須與它合作,並且需要了解如何做到這一點。 –