react-native 从 Spotify API 获取访问/刷新令牌



我正在使用 react-native(并且本质上使用内置的 fetch 方法。我有以下代码发布到 spotify,并且应该返回一个令牌,而不是我收到错误的令牌。

法典:

  var btoa = require('base-64');      
  var authOptions = {
    method : 'POST',
    body: JSON.stringify({
      code: resCode,
      redirect_uri: 'myapp://foo',
      grant_type: 'authorization_code'
    }),
    headers: {
      'Authorization': 'Basic ' + btoa.encode(secrets.id + ':' + secrets.secret)
    },
    json: true
  };
  fetch('https://accounts.spotify.com/api/token', authOptions).then(
    (res) => console.log(res)
  );

我收到的错误:

Response {_bodyInit: "{"error":"unsupported_grant_type","error_descripti…redentials, authorization_code or refresh_token"}", _bodyText: "{"error":"unsupported_grant_type","error_descripti…redentials, authorization_code or refresh_token"}", type: "default", url: "https://accounts.spotify.com/api/token", status: 400…}

您正在发送json的字符串在帖子正文中,但是根据文档,您必须发送参数。此外,如果您查看示例 curl 请求,您可以看到它是如何完成的:

curl -H "Authorization: Basic ZjM...zE=" -d grant_type=authorization_code -d code=MQCbtKe...44KN -d redirect_uri=https%3A%2F%2Fwww.foo.com%2Fauth https://accounts.spotify.com/api/token

这不是json.尝试将尸体作为FormData发送。

最新更新