在我的節點應用程序項目中,我將Twitter API從v1.0遷移到v1.1。我在日誌文件中發現了一些錯誤。錯誤或規範更改(Twitter API 1.1)
錯誤
{"message":"Could not authenticate you","code":32}
原因
出現此錯誤,如果後期的數據(1.1 /狀態/更新)被包括...
- !
- '
- (
- )
- *
解
我已平息node_modules/OAuth的節點的OAuth(僅用於節點 - 的/ LIB/oauth.js twitter)...
from
327 if((method == "POST" || method == "PUT") && (post_body == null && extra_params != null)) {
328 post_body= querystring.stringify(extra_params);
329 }
到
327 if((method == "POST" || method == "PUT") && (post_body == null && extra_params != null)) {
328 post_body= querystring.stringify(extra_params);
+331 post_body= post_body.replace(/\!/g, "%21")
+332 .replace(/\'/g, "%27")
+333 .replace(/\(/g, "%28")
+334 .replace(/\)/g, "%29")
+335 .replace(/\*/g, "%2A");
336 }
Twitter的API 1.0不需要這個補丁。只有v1.1需要這個補丁雙重逃脫後身。我覺得我的補丁並不普遍,因爲這種變化將使其無法使用這個庫用於任何其他的OAuth服務...
我的問題
- 這是節點的OAuth問題或Twitter API問題(Twitter Spec chage或bug)?
- 我應該向誰報告此問題?