【问题标题】:Twitter API: timestamp out of Bounds when calling oauth request_tokenTwitter API:调用 oauth request_token 时的时间戳超出范围
【发布时间】:2018-01-24 08:18:34
【问题描述】:

我正在尝试将 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

我不知道为什么它被认为是越界。

【问题讨论】:

    标签: twitter oauth twitter-oauth


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

      您的时间戳超出了大约 1000 倍!应该是:

      oauth_timestamp=1502553412
      

      【讨论】:

      • 谢谢。看起来我使用的库有问题。后来想通了,但你的答案就是问题所在。
      猜你喜欢
      • 2011-12-22
      • 1970-01-01
      • 2023-01-27
      • 2020-05-10
      • 1970-01-01
      • 1970-01-01
      • 2016-10-29
      • 2011-08-07
      • 2020-11-20
      相关资源
      最近更新 更多