Я намагаюся використовувати fetch
в React Native для отримання інформації з 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
це запущено.
Я отримую помилку наступну:
{"error": "unauthorized_oauth", "error_description": "Будь ласка, надайте дійсний маркер доступу. Зверніться до нашої документації api про те, як авторизувати запит api. Будь ласка, переконайтеся, що вам потрібні правильні області застосування. Наприклад, \" приватний публічний \ "для доступу до приватних кінцевих точок."}
Я опрацьовую припущення, що я якось не проходжу належним чином маркер доступу в своєму заголовку авторизації, але, здається, не можу точно зрозуміти, чому саме.