2010-03-02 214 views
7

我正在使用以下方法URI從twitter請求令牌。如何使用twitter與使用OAuth獲取request_token

注意:此處新行僅用於顯示目的。

http://twitter.com/oauth/request_token? 
oauth_consumer_key=9cS99b2406CUpATOeggeA& 
oauth_signature_method=HMAC-SHA1& 
oauth_signature=3e18bafc4c4fd6b23f988bcd1a8c0ab2d65db784 
oauth_timestamp=1267523137& 
oauth_nonce=56e66e9f8bd28b320f86a16407f9911d& 
oauth_version=1.0& 
oauth_callback=http://playground.com 

但它給出錯誤「無法驗證oauth簽名和令牌」。

我用電腦簽名基本字符串波紋管:

GET& 
http%3A%2F%2Ftwitter.com%2Foauth%2Frequest_token& 
oauth_consumer_key%3D9cS99b2406CUpATOeggeA%26 
oauth_signature_method%3DHMAC-SHA1%26 
oauth_timestamp%3D1267523137%26 
oauth_nonce%3D56e66e9f8bd28b320f86a16407f9911d%26 
oauth_version%3D1.0%26 
oauth_callback%3Dhttp%3A%2F%2Fplayground.com 


請糾正我,我在哪裏犯錯。

+0

如果你與Twitter登入完成,請提供給我像github上或plunker – 2017-07-18 07:26:36

回答

4

你的問題是與參數的順序。基本字符串的參數需要按順序排列。如果它們失靈,它會給你那個錯誤。

所以,你的基本字符串應該是這樣的......

GET& 
http%3A%2F%2Ftwitter.com%2Foauth%2Frequest_token& 
oauth_consumer_key%3D9cS99b2406CUpATOeggeA%26 
oauth_nonce%3D56e66e9f8bd28b320f86a16407f9911d%26 
oauth_signature_method%3DHMAC-SHA1%26 
oauth_timestamp%3D1267523137%26 
oauth_version%3D1.0%26 
oauth_callback%3Dhttp%3A%2F%2Fplayground.com 

注意,你的「現時」是不是在正確的位置。

此外,通常,「簽名」參數會附加到請求URL的末尾。

http://oauth.net/core/1.0a/#anchor46

附錄A.5.1

+0

我仍然得到同樣的錯誤的地方你的工作例如「無法驗證的OAuth簽名和令牌」 – Amit 2010-03-15 09:04:16

+0

我相信'oauth_callback'參數也應在正確的順序。另外,當我的意思是正確的順序時,這些需要按順序創建簽名。如果您仍然遇到問題,請編輯您的帖子並添加新的基本字符串,以便我們可以看到它的內容。 – 2010-03-15 12:06:02

+0

嗨..我可以知道,我怎麼能得到oauth_signature?..謝謝 – pcs 2016-02-03 05:07:32

0

Eclipsed4utoo說什麼 - 但如果你仍然得到錯誤,你應該檢查是否已註冊您的應用程序是基於瀏覽器(和指定的回調)在Twitter的開發管理頁面。

如果它被列爲桌面應用程序,但在調用中包含& oauth_callback,則會看到您提到的簽名驗證錯誤。

相關問題