Estou tentando usar o fetch
React Native para obter informações da API do Product Hunt. Obtive o token de acesso adequado e salvei-o em State, mas não consigo transmiti-lo no cabeçalho de autorização para uma solicitação GET.
Aqui está o que eu tenho até agora:
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();
},
A expectativa que tenho para o meu código é a seguinte:
- Primeiro, vou
fetch
acessar um token com dados do meu módulo API importado - Depois disso, definirei a
clientToken
propriedadethis.state
igual ao token de acesso recebido. - Em seguida, executarei o
getPosts
que deve retornar uma resposta contendo uma matriz de postagens atuais do Product Hunt.
Posso verificar se o token de acesso está sendo recebido e se está sendo recebido this.state
como sua clientToken
propriedade. Também posso verificar se getPosts
está sendo executado.
O erro que estou recebendo é o seguinte:
{"error": "unauthorized_oauth", "error_description": "Forneça um token de acesso válido. Consulte a documentação da API sobre como autorizar uma solicitação de API. Verifique também se você precisa dos escopos corretos. Por exemplo, \" private public \ "para acessar pontos de extremidade privados."}
Estou trabalhando com a suposição de que, de alguma forma, não estou passando o token de acesso corretamente no cabeçalho da minha autorização, mas não consigo descobrir exatamente o porquê.