2013-02-03 8 views
6

私のノードアプリケーションプロジェクトで、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)...

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 v1.0のは、このパッチを必要としません。このパッチは、v1.1だけが投稿本体をダブルエスケープする必要があります。私は、これは、ノードのOAuth問題やTwitterのAPIである私の質問

...この変更は、他のOAuthサービスのために、このライブラリを使用することができなくなりますので、私のパッチは、普遍的ではありません

  • を考えます問題(Twitterの仕様変更やバグ)?
  • この問題は誰に報告してください。

答えて

1

私もこの同じ問題を経験しました。私は2つの異なるtwitterライブラリ(node-twitterとntwitter)を試しました。どちらも1.1 APIで同じ問題があります。あなたの修正は私のために働いたようです。ありがとう! 66行目に同じ修正が適用されているのは興味深い。確かではないが、これはnode-oauthのバグだと思われる。私はそこにそれを報告することから始めます。あなたの修正は、私がFacebookでやっている基本的なものを壊すようには見えなかったので、この修正が他のlibに影響していないという良い兆候であることを願っています。

2

これはnode-oauthの問題またはTwitter APIの問題(Twitter Specの変更またはバグ)ですか? @episodから

引用:
「API v1.1の(と一般的には、私たちのAPIのすべてが)のOAuthとHTTPと厳しい取得しているHTTPの仕様では、一部の文字をURLでエンコードする必要とされています。 POSTボディ(括弧や一重引用符など)。 "

この問題は誰に報告してください。

ここでの問題のスレッドです:https://dev.twitter.com/discussions/12821

は、