ฉันกำลังพยายามใช้fetch
ใน React Native เพื่อดึงข้อมูลจาก 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();
},
ความคาดหวังที่ฉันมีสำหรับรหัสของฉันคือ:
- ก่อนอื่นฉันจะ
fetch
ใช้โทเค็นการเข้าถึงพร้อมข้อมูลจากโมดูล API ที่นำเข้าของฉัน - หลังจากนั้นฉันจะตั้งค่า
clientToken
คุณสมบัติthis.state
ให้เท่ากับโทเค็นการเข้าถึงที่ได้รับ - จากนั้นฉันจะเรียกใช้
getPosts
ซึ่งควรส่งคืนการตอบกลับที่มีอาร์เรย์โพสต์ปัจจุบันจาก Product Hunt
ฉันสามารถที่จะตรวจสอบว่าโทเค็นการเข้าถึงจะถูกได้รับและที่this.state
จะได้รับเป็นของclientToken
สถานที่ให้บริการ ฉันยังสามารถตรวจสอบว่าgetPosts
กำลังทำงานอยู่
ข้อผิดพลาดที่ฉันได้รับมีดังนี้:
{"ข้อผิดพลาด": "unauthorized_oauth", "error_description": "โปรดระบุโทเค็นการเข้าถึงที่ถูกต้องอ้างถึงเอกสาร API ของเราเกี่ยวกับวิธีการอนุมัติคำขอ API โปรดตรวจสอบให้แน่ใจว่าคุณจำเป็นต้องใช้ขอบเขตที่ถูกต้องเช่น \ สาธารณะส่วนตัว \ "สำหรับการเข้าถึงจุดปลายส่วนตัว"}
ฉันใช้ข้อสมมติว่าฉันไม่ผ่านโทเค็นการเข้าถึงอย่างถูกต้องในส่วนหัวการให้สิทธิ์ของฉัน แต่ดูเหมือนจะไม่สามารถคิดออกได้ว่าทำไม