Twitter API:调用oauth request_token时超出Bounds的时间戳

时间:2017-08-16 09:02:46

标签: twitter oauth twitter-oauth

我正在尝试将oauth流程集成到我的应用程序中。

我在使用此错误调用oauth / request_token端点时收到401:

"message": "401 - {\"errors\":[{\"code\":135,\"message\":\"Timestamp out of bounds.\"}]}"

这是我的授权标题:

"Authorization": "OAuth oauth_callback=http%3A%2F%2F127.0.0.1%3A3000%2Ftwitter%2Foauth_callback,oauth_consumer_key=MYKEY,oauth_nonce=150255341200200,oauth_signature_method=HMAC-SHA1,oauth_timestamp=1502553412002,oauth_version=1.0,oauth_signature=d09f2f2a39e51909442ae6ca717e4aeba7066fda"

我可以在响应标题中看到Twitter的服务器时间是:“date”: “Sat, 12 Aug 2017 15:56:52 GMT”

如果我把我的时间戳转换为GMT日期,我会得到:

Saturday, August 12, 2017 3:56:52.002 PM

我不确定为什么它被认为是出界的。

2 个答案:

答案 0 :(得分:2)

oauth_timestamp应该是自1970年1月1日00:00:00 UTC以来整个秒的数量。

你的时间戳大约是1000!应该是:

oauth_timestamp=1502553412

答案 1 :(得分:1)

有关时间戳值,请使用以下代码:

Math.floor((new Date()).getTime() / 1000);