私は現在、Chrome 拡張機能と Twitter API で少し遊んでいますが、ユーザー ストリームの要求に行き詰まっています。
私が生成している Auth ヘッダーは、curl を介して API を正常に呼び出すことができるため、機能しますが、XHR を介してリクエストを行うとすぐに、ネットワーク タブにリクエストが「保留中」と表示されます。
拡張マニフェストの権限リストに twitter API を追加しました。そうしないとSame-Originエラーが発生するため、これは問題になりません。それを使用したAuth-Tokenの生成/リクエストも正常に機能します。
Chrome が送信するリクエスト ヘッダーは次のとおりです。
GET https://userstream.twitter.com/2/user.json HTTP/1.1
Authorization: OAuth oauth_version="1.0", oauth_token="XXXXXXXX-XXXXXXXXXXXXXXXK1UgBBqCls8QGb1FAYU", oauth_consumer_key="XXXXXXXXXXXKPbUx3eA", oauth_signature_method="HMAC-SHA1", oauth_timestamp="1341958387", oauth_nonce="doPiU4", oauth_signature="XXXXXXXXXXqiynLgAT5UIkHgiWk%3D"
User-Agent: Foo
Accept: */*
Cache-Control: max-age=0
これにより、Chrome で「保留中」のリクエストが生成されますが、次の curl リクエストは期待どおりに機能します。
curl --get 'https://userstream.twitter.com/2/user.json' --header 'Authorization: OAuth oauth_version="1.0", oauth_token="XXXXXXXX-XXXXXXXXXXXXXXXK1UgBBqCls8QGb1FAYU", oauth_consumer_key="XXXXXXXXXXXKPbUx3eA", oauth_signature_method="HMAC-SHA1", oauth_timestamp="1341958387", oauth_nonce="doPiU4", oauth_signature="XXXXXXXXXXqiynLgAT5UIkHgiWk%3D"' -A "Foo" --verbose
基本的に同じヘッダーを生成します