私はしばらくこれにこだわっています。OAuthSimple.js を使用して、私が作成した Chrome 拡張機能で Twitter とやり取りしようとしています。
署名プロセスは、ユーザーのステータスを取得するリクエストに対しては正常に機能しているように見えますが、リツイート、返信、またはツイートをお気に入りとしてマークしようとすると、正常に認証されるリクエストを構築できないようです。
ここのガイドに従っています。また、リクエストを構造化するさまざまな方法を試し、リクエストの内容を Twitter が提供する OAuth ツールの出力 (チェックアウトしているようです) と比較しましたが、まだ 401 エラーと一般的な「認証できませんでした」あなた」の反応。
リクエストを作成しようとしている方法は次のとおりです。
var sendTwitterRequest = function(url, params, method, callback) {
var request = null;
if ( localStorage.twitterAuthToken ) {
OAuthSimple().reset();
request = OAuthSimple(TwitterConsumerKey,TwitterConsumerSecret).sign({
action:method,
method:"HMAC-SHA1",
dataType:"JSON",
path:url,
parameters:params,
signatures:{
oauth_version:'1.0',
oauth_token:localStorage.twitterAuthToken,
oauth_secret:localStorage.twitterAuthVerifier
}
});
console.log(request);
$j.ajax({
url:request.signed_url,
type:method,
data:request.parameters,
success:callback
});
}
};
次に、このメソッドを次のように呼び出します。
// this works, I get the data and can do stuff with it
sendTwitterRequest('http://api.twitter.com/1/statuses/user_timeline.json?user_id=',null,'GET',someMethod());
// this fails and throws a 401 error every time
sendTwitterRequest("https://api.twitter.com/1/statuses/retweet/"+tweetKey+".json",null,'POST',someOtherMethod());
何か不足していますか?前もって感謝します!