2011-08-17 44 views
0

我正在調查使用Drupal 6中的服務模塊從JSON格式的某些自定義視圖中獲取數據。我跟在http://drupal.org/node/308629的文章,創造了這個項目(推高至https://[email protected]/sharpred/ConsoleApplicationDrupal.git無效的API鍵

我第一次運行我的代碼,我得到「無效的API密鑰」,隨後的運行中返回的VB版的「令牌之前已用於請重新嘗試使用另一個nonce密鑰「。第二個錯誤是有點虛假IMO,因爲我的代碼每次運行時都會創建一個新的隨機數。

我還注意到,第一次運行在services_timestamp_nonce表中創建一個條目,其中只包含時間戳,但沒有隨機數或域值。如果我刪除這條記錄,它會回到「invalid api key」消息。

該代碼未經驗證,並且來自網站/admin/build/services/browse/views.get的方法調用也適用。

任何想法爲什麼這不起作用?

搜索谷歌,「無效API密鑰」最常見的來源似乎是一個人使用的時間戳錯誤或者API密鑰與創建哈希時使用的域不匹配。就我所見,我的情況也不是這樣。我創建了一個用於創建時間戳和散列的代碼,用於創建時間戳和散列表https://gist.github.com/1151222

任何人都可以幫助獲取此過程的工作嗎?

回答

0

在通過服務模塊的代碼進行拖網之後,我想到了這一點。我的多部分表單中的某些值沒有用引號括起來,所以被services_key_auth模塊處理爲空值。這意味着在第一遍時,只有時間戳被寫入nonce表,並且由於引號,計算出的散列與我的散列不匹配。在後續更新中,模塊有效地搜索nonce值爲null並在數據庫中找到一個值,並返回之前使用過的結果。如果其他人得到這個問題,請把我的github項目鏈接到上面,看看我的代碼。