gpt4 book ai didi

javascript - 在 React Native 中使用带有 Fetch 的授权 header

转载 作者:IT王子 更新时间:2023-10-29 02:41:02 25 4
gpt4 key购买 nike

我正在尝试在 React Native 中使用 fetch 从 Product Hunt API 获取信息。我已获得正确的访问 token 并将其保存到状态,但似乎无法在 GET 请求的授权 header 中传递它。

这是我目前所拥有的:

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 模块中的数据获取一个访问 token
  2. 之后,我会将 this.stateclientToken 属性设置为等于收到的访问 token 。
  3. 然后,我将运行 getPosts,它应该返回一个响应,其中包含来自 Product Hunt 的一组当前帖子。

我能够验证正在接收访问 token ,并且 this.state 正在接收它作为其 clientToken 属性。我还能够验证 getPosts 是否正在运行。

我收到的错误如下:

{"error":"unauthorized_oauth", "error_description":"Please supply a valid access token. Refer to our api documentation about how to authorize an api request. Please also make sure you require the correct scopes. Eg \"private public\" for to access private endpoints."}

我一直在假设我以某种方式没有在我的授权 header 中正确传递访问 token ,但似乎无法找出确切原因。

最佳答案

使用授权 header 获取示例:

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

关于javascript - 在 React Native 中使用带有 Fetch 的授权 header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30203044/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com