2011-08-04 69 views
0

FatSecret提供了兩個API,一個是javascript,另一個是REST API。由於javascript API有限,我必須從REST API開始。他們有一個Oauth計劃。所以,我拿走了我的參數並創建了一個簽名,將它附加到了url上,發出了一個ajax請求,並且發出了Voila!它不起作用。我一直收到無效的簽名錯誤響應。我使用以下參數(以及要調用的方法和響應格式)來創建用於簽名生成的基本字符串,並打擊實際的API。FatSecret的REST API問題

oauth_consumer_key: "MY_KEY" 
oauth_nonce: "ABC" 
oauth_signature_method: "HMAC-SHA1", 
oauth_timestamp: "TIME", 
oauth_version: "1.0", 
oauth_signature: "WXYZ" 

我正在使用jquery UUID插件來生成auth_nonce。我不知道自己做錯了什麼,但我完全相信我生成的簽名是正確的。

有一個rubygem,它使用Net :: HTTP請求,完全正常。即使當我使用gem生成的URL時,我也無法獲得jsonp請求的成功。但是,如果我在瀏覽器上使用該URL(在oauth_timestamp過期之前),它將完全正常工作。

如果有人有興趣,我會發布更多的細節。

驗證文件可用here

+0

我很想知道,如果你設法解決這個 - 上集成的工作ObjC和有類似的問題。 – lxt

+0

後來我神奇地認證了。但是,我無法提出跨域請求。 – user864652

+0

我發現我正在進行身份驗證。但是,我無法提出跨域請求,fatsecret沒有jsonp支持,而且由於javascript是我唯一的編程選項,所以沒有出路。我意識到我試圖通過Ajax使用REST API,而已經有一個JavaScript API可用。你怎麼了? – user864652

回答

1

我一直在困難時候讓這個API也適用於我。

這個test OAuth test client幫我整理了我的OAuth錯誤。

請記住,參數使用字典型字節值排序,首先按名稱,然後按值排序。

在這種情況下工作辭書例如:

  1. oauth_alpha =第一
  2. oauth_batman
  3. oauth_beta =第三(#因爲3 =第二(因爲在蝙蝠俠 「B」 #2)「 E」測試版)
  4. oauth_beta =斑馬(因爲#4‘斑馬Z’)
+1

'按字母排序的字節值排序,首先按名稱,然後按值排序。' - WTF的意思是:/對不起,只是發泄我的沮喪:已經過了2個小時,我仍然無法使它工作 –

+1

我編輯了答案,以舉例說明這種情況下的排序。 – digitalfitness