我有一個iOS應用那帖子圖片給幾個服務,其中包括Twitter和我試圖擴展到tumblr的支持401 /「無效的OAuth認證」。我已經修改了OAuth 1.0a標題邏輯的一些開源代碼,並且它的工作足以讓twitter + twitpic和tumblr的認證成功。但是圖像職位,以tumblr與狀態401和字符串響應「無效的OAuth認證,」的tumblr的OAuth圖像後給我
未能簡化,我唯一的多部分是崗位類型和圖像數據。
所以我簡單的POST是http://www.tumblr.com/api/write,簽名基本字符串(大概,因爲我節錄我的消費密鑰和標記,並換行增加了可讀性):
POST&http%3A%2F%2Fwww.tumblr.com%2Fapi%2Fwrite&
oauth_consumer_key%3Dxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx%26
oauth_nonce%3D71edd7a1224463a7e1723bb7b568060b4d69deb6%26
oauth_signature_method%3DHMAC-SHA1%26
oauth_timestamp%3D1297678418%26
oauth_token%3Dxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx%26
oauth_version%3D1.0%26
type%3Dphoto
我的OAuth標題是(再次,換行符添加這裏閱讀):
Authorization: OAuth realm="http://www.tumblr.com/",
oauth_consumer_key="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
oauth_signature_method="HMAC-SHA1",
oauth_timestamp="1296445530",
oauth_nonce="71edd7a1224463a7e1723bb7b568060b4d69deb6",
oauth_version="1.0",
oauth_token="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
oauth_signature="fWuli4eO3qVehfdeFzZN%2FDNYpFk%3D"
唯一的其他頭我添加的內容類型(多/表單數據)&內容長度和消息體就是:
--my_sorta_unique_boundary_string
Content-Disposition: form-data; name="type"
photo
--my_sorta_unique_boundary_string
Content-Disposition: form-data; name="data"
Content-Type: image/jpg
Content-Transfer-Encoding: binary
... (image data) ...
--my_sorta_unique_boundary_string--
誰能告訴我,如果我做錯了什麼與我的簽名基本字符串或身份驗證頭,或者如果有一些伎倆越來越tumblr的OAuth崗位工作?
謝謝,我添加了類型參數,但仍然失敗(編輯我的問題說出來)。我想知道我錯過的一些參數實際上是否是必需的,並且以某種方式報告爲oauth失敗。問題是:您的授權標頭是否只包含oauth參數(其他參數以表格數據部分的形式提供)與我的一樣? – 2011-02-14 10:29:37