在React Native中使用授权标头

我试图在React Native中使用fetch来从Product Hunt API中获取信息。 我已经获得适当的访问令牌,并已将其保存到状态,但似乎无法传递给GET请求的授权标头。

以下是我到目前为止:

 var Products = React.createClass({ getInitialState: function() { return { clientToken: false, loaded: false } }, componentWillMount: function () { fetch(api.token.link, api.token.object) .then((response) => response.json()) .then((responseData) => { console.log(responseData); this.setState({ clientToken: responseData.access_token, }); }) .then(() => { this.getPosts(); }) .done(); }, getPosts: function() { var obj = { link: 'https://api.producthunt.com/v1/posts', object: { method: 'GET', headers: { 'Accept': 'application/json', 'Content-Type': 'application/json', 'Authorization': 'Bearer ' + this.state.clientToken, 'Host': 'api.producthunt.com' } } } fetch(api.posts.link, obj) .then((response) => response.json()) .then((responseData) => { console.log(responseData); }) .done(); }, 

我对我的代码的期望如下:

  1. 首先,我将使用导入的API模块中的数据fetch访问令牌
  2. 之后,我将把clientToken属性设置为等于接收到的访问令牌。
  3. 然后,我将运行getPosts ,它将返回包含Product Hunt中当前职位数组的响应。

我能够validation访问令牌正在接收,并且this.state接收它作为其clientToken属性。 我也能够validationgetPosts正在运行。

我收到的错误如下:

API错误

我一直在努力的假设,我不知道在我的授权头正确传递访问令牌,但似乎无法弄清楚为什么。

使用授权标头的示例提取:

 fetch('URL_GOES_HERE', { method: 'post', headers: { 'Authorization': 'Basic '+btoa('username:password'), 'Content-Type': 'application/x-www-form-urlencoded' }, body: 'A=1&B=2' }); 

事实certificate,我错误地使用了fetch方法。

fetch需要两个参数:API的端点,以及一个可以包含主体和标题的可选对象。

我正在将目标物体包裹在第二个物体中,这并没有得到我想要的结果。

以下是它在高层上的外观:

 fetch('API_ENDPOINT', OBJECT) .then(function(res) { return res.json(); }) .then(function(resJson) { return resJson; }) 

我的结构是这样的:

 var obj = { method: 'POST', headers: { 'Accept': 'application/json', 'Content-Type': 'application/json', 'Origin': '', 'Host': 'api.producthunt.com' }, body: JSON.stringify({ 'client_id': '(API KEY)', 'client_secret': '(API SECRET)', 'grant_type': 'client_credentials' })