无法使用ES6 Fetch从Twitter OAuth API请求令牌

时间:2016-10-18 04:10:08

标签: javascript twitter oauth react-native

我正在尝试使用针对React Native中ES6的Fetch API的https://api.twitter.com/oauth/request_token的POST请求从Twitter的API获取令牌。

这是我的代码:

fetch('https://api.twitter.com/oauth/request_token', {
  method: 'POST',
  headers: {
    Oauth: {
      oauth_callback: 'reactnativechirp://callback',
      oauth_consumer_key: keys.consumerKey,
      oauth_nonce: nonce,
      oauth_signature: 'Pc%2BMLdv028fxCErFyi8KXFM%2BddU%3D',
      oauth_signature_method: 'HMAC-SHA1',
      oauth_timestamp: epoch,
      oauth_version: '1.0'
    }
  }
})
.then((res) => res.json())
.then((json) => {
  console.log(json);
})

oauth_nonce设置为nonce变量,我将其作为随机的二十个字符串生成。

使用new Date().getTime()

将oauth_timestamp设置为当前的Unix纪元时间

此请求正在componentDidMount()中生成,我收到一个错误对象,其中code: 215, message: 'Bad Authentication data.

已登录到控制台

我做错了什么?

1 个答案:

答案 0 :(得分:0)

我认为你正在使用旧的twitter api。您可以使用https://github.com/BoyCook/TwitterJSClienthttps://github.com/aivis/user-stream库来验证和使用twitter api 如果没有,您还可以了解oauth如何使用最新的Twitter API版本1.1 here