01-24-2020 20:22
01-24-2020 20:22
How exactly are we supposed to use the fetch API? Is there something specific that we are supposed to import? I am calling fetch( ) but keep getting Unhandled exception: ReferenceError: fetch is not defined, which is weird because this is the exact way that it is done on the github examples (1. https://github.com/Fitbit/sdk-bart/blob/1a92087ad8694f8d488fcb2a6e2313ef452168d7/companion/bart.js,
2. https://github.com/Fitbit/sdk-oauth/blob/master/companion/index.js )
I have the code written in "~/companion/index.js", but it is still failing
fetch(url, parameters).then(function(response) {
return response.json();
}).then(function(responseData) {
if (responseData.messages[0]["status"] === "0") {
console.log("Message sent");
} else {
console.log("MESSAGE NOT SENT");
}
}).catch(function(error) {
console.log(error)
})
}
01-25-2020 02:45
01-25-2020 02:45
Fetch doesn't require import of any kind. Try to create a small working project with just fetching something simple out of companion index.js. There could be something in else in your project causing this issue.
04-23-2021 12:07
04-23-2021 12:07
I also try this: https://gist.github.com/rootasjey/81447690613d71f193d954b660754b98
// Companion
fetch(encodeURI(url))
.then(response => response.json())
.then(data => {
// Post-processing
// ...
resolve(data)
})
.catch(e => reject(e.message))
But that doesn´t work. I would appreciate any advice
04-23-2021 21:23
04-23-2021 21:23
That doesn't seem to be a working example.
Here is a working example app https://github.com/sammachin/Fitbit-MessageDemo/blob/master/companion/index.js#L22
04-25-2021 18:05
04-25-2021 18:05
xD I also tried it that way, but checking the example I found something I left out. It's strange that the resolution of the first promise must be chained to the second one for it to work. So at the end I managed it like this:
const myHeaders = new Headers({'Content-Type': 'application/json'})
const API = 'https://rickandmortyapi.com/api/character/1'
console.log("BEFORE")
fetch(API, {
method : "GET",
headers : myHeaders
})
.then( response => {
return response.json()
})
.then( data => {
console.log(data)
})
.catch ((err) => {
console.error(err)
})
console.log("AFTER")
But I still get a message saying: The 'permission' API is not yet supported in the Fitbit OS Simulator. Behavior may not match the documentation or real devices. Does anyone know if it can be corrected?
BEFORE
The 'permission' API is not yet supported in the Fitbit OS Simulator. Behavior may not match the documentation or real devices.
AFTER
{ id: 1, name: 'Rick Sanchez', status: 'Alive', species: 'Human', type: '', gender: 'Male', origin: { name: 'Earth (C-137)', ...
04-25-2021 18:54
04-25-2021 18:54
Looks like you have the fetch working.
Ignore the 'permission API' warning, that is not related to anything here.