Ich versuche, fetch
in React Native Informationen aus der Product Hunt-API abzurufen. Ich habe das richtige Zugriffstoken erhalten und im Status gespeichert, kann es jedoch anscheinend nicht im Autorisierungsheader für eine GET-Anforderung weitergeben.
Folgendes habe ich bisher:
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();
},
Die Erwartung, die ich an meinen Code habe, ist folgende:
- Zuerst werde ich
fetch
ein Zugriffstoken mit Daten aus meinem importierten API-Modul erstellen - Danach setze ich die
clientToken
Eigenschaft von sothis.state
, dass sie dem empfangenen Zugriffstoken entspricht. - Dann werde ich ausführen,
getPosts
was eine Antwort zurückgeben sollte, die eine Reihe aktueller Beiträge von Product Hunt enthält.
Ich kann überprüfen, ob das Zugriffstoken empfangen wird und ob this.state
es als seine clientToken
Eigenschaft empfangen wird . Ich kann auch überprüfen, ob das ausgeführt getPosts
wird.
Der Fehler, den ich erhalte, ist folgender:
{"error": "unauthorized_oauth", "error_description": "Bitte geben Sie ein gültiges Zugriffstoken an. Informationen zum Autorisieren einer API-Anfrage finden Sie in unserer API-Dokumentation. Stellen Sie außerdem sicher, dass Sie die richtigen Bereiche benötigen. Beispiel:" private public \ " "für den Zugriff auf private Endpunkte."}
Ich habe die Annahme getroffen, dass ich das Zugriffstoken in meinem Autorisierungsheader irgendwie nicht richtig weitergebe, aber anscheinend nicht genau herausfinden kann, warum.