我目前正在使用 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
它产生基本相同的标题