Tôi đang cố gắng sử dụng fetch
trong React Native để lấy thông tin từ API sản phẩm. Tôi đã nhận được Mã thông báo truy cập phù hợp và đã lưu nó vào Trạng thái, nhưng dường như không thể chuyển nó theo tiêu đề Ủy quyền cho yêu cầu GET.
Đây là những gì tôi có cho đến nay:
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();
},
Kỳ vọng tôi có cho mã của mình là như sau:
- Đầu tiên, tôi sẽ
fetch
mã thông báo truy cập với dữ liệu từ mô-đun API đã nhập của tôi - Sau đó, tôi sẽ đặt thuộc
clientToken
tínhthis.state
bằng với mã thông báo truy cập nhận được. - Sau đó, tôi sẽ chạy
getPosts
để trả về một phản hồi có chứa một loạt các bài đăng hiện tại từ Product Hunt.
Tôi có thể xác minh rằng mã thông báo truy cập đang được nhận và this.state
đang nhận nó là clientToken
tài sản của nó . Tôi cũng có thể xác minh rằng getPosts
đang được chạy.
Lỗi tôi nhận được là như sau:
{"error": "trái phép_oauth", "error_description": "Vui lòng cung cấp mã thông báo truy cập hợp lệ. Tham khảo tài liệu api của chúng tôi về cách ủy quyền yêu cầu api. Vui lòng đảm bảo bạn yêu cầu phạm vi chính xác. Ví dụ \" riêng tư \ "để truy cập các điểm cuối riêng tư."}
Tôi đã làm việc với giả định rằng bằng cách nào đó tôi không chuyển mã thông báo truy cập đúng cách trong tiêu đề ủy quyền của mình, nhưng dường như không thể hiểu chính xác tại sao.