6
我成功地通過OAuth進程獲取訪問令牌。獲取「無法使用OAuth進行身份驗證」。從Twitter嘗試POST時
然而,當我試圖運行POST到/statuses/update.json終點,我得到一個「無法通過OAuth認證。」
我與我從與消費者的祕密認證回來令牌簽名,我不明白,可能是什麼。
Twitter的論壇沒有幫助的。
任何提示將不勝感激。
我成功地通過OAuth進程獲取訪問令牌。獲取「無法使用OAuth進行身份驗證」。從Twitter嘗試POST時
然而,當我試圖運行POST到/statuses/update.json終點,我得到一個「無法通過OAuth認證。」
我與我從與消費者的祕密認證回來令牌簽名,我不明白,可能是什麼。
Twitter的論壇沒有幫助的。
任何提示將不勝感激。
使身份驗證的調用到Twitter可以是一個痛苦。
確保在您的簽名基本字符串參數按字母順序排列。
藉此:
oauth_consumer_key={consumerkey}&oauth_nonce={nonce}&oauth_signature_method=HMAC-SHA1&oauth_timestamp={timestamp}&oauth_token={token}&oauth_version=1.0&status={tweet text}
填寫值,爲Base64編碼,然後把它放在一起這樣的:
POST&{base64 encoded url}&{base64 encoded base string}
這將是您需要註冊的字符串(不括號)。 (在這種情況下,將URL https://api.twitter.com/1.1/statuses/update.json)
簽名密鑰需要像這樣建:
{consumer secret}&{token secret}
的簽名是HMACSHA1哈希,然後將其base64編碼。
然後,你需要把這個Authorization頭:
OAuth oauth_consumer_key="{consumer key}",oauth_nonce="{nonce}",oauth_signature="{signature}",oauth_signature_method="HMAC-SHA1",oauth_timestamp="{timestamp}",oauth_token="{token}",oauth_version="1.0"
,最後把status=your tweet text
的發佈數據中您的要求。
我希望這會有所幫助。
首先,嘗試用你的鑰匙一些GET請求(類似狀態/ home_timeline需要身份驗證)。它工作嗎? – Shcheklein
確保您的服務器時鐘與Twitter或其他知名時間服務器同步。如果超過15分鐘,Twitter會說不好的簽名並失敗。 –
我遇到了同樣的問題(c/liboauth/maemo5) - 所有事情都通過罰款獲得訪問令牌(與屏幕名稱等) - 但是當我做了一個休息電話(甚至只是一個讀取)我得到了這個錯誤...閱讀埃蘭的評論我注意到,我工作的虛擬機的時鐘是一個小時了!現在它工作:)所以,謝謝伊蘭 - 你的評論應該是一個答案,+1。 – fusi