Ci scusiamo per questa risposta arriva due anni di ritardo, ma forse sarà di aiuto a qualcuno.
Quando si conosce il token di un utente & token segreto, è possibile iscriversi al proprio feed utilizzando la seguente richiesta POST DI OAUTH. Questo URL è per il feed delle loro attività.
<?php
$consumerKey = "lajsdf23l4l8asdfn238ladf8xjk92oi"; //From Fitbit's website when you sign up for an app
$consumerSecret = "l8adl3halsdf82p9adfads2gjadsf"; //From Fitbit's website when you sign up for an app
$oauth = new OAuth($consumerKey,$consumerSecret,OAUTH_SIG_METHOD_HMACSHA1,OAUTH_AUTH_TYPE_AUTHORIZATION);
$usersToken = "k28a9wifvnc89w2o8oigaad8e23r23jf";
$usersSecret = "234o8fdofsy8df89aydfoyo84e2902af";
$oauth->setToken($usersToken,$usersSecret);
$subscriptionURL = "https://api.fitbit.com/1/user/-/activities/apiSubscriptions.json";
try{
//Send a POST to subscribe as stated on https://wiki.fitbit.com/display/API/Fitbit+Subscriptions+API
$oauth->fetch($subscriptionURL, null, OAUTH_HTTP_METHOD_POST);
print_r(json_decode($oauth->getLastResponse())); // Make sure the request was successful
}
catch(Exception $e){
echo 'ERROR:';
print_r($e);
print_r($oauth->getRequestHeader('POST', $url));
}
vostro abbonato endpoint URL deve essere una pagina web in cui si dispone di un codice in grado di ricevere i dati Fitbit e fare tutto ciò che è necessario fare con esso. Di seguito è riportato un codice PHP che ti consentirà di iniziare.
<?php
// Get the input data and create a PHP object to use.
$fitbitPushData = file_get_contents("php://input");
$fitbitData = json_decode($fitbitPushData);
A scopo di verifica, vi suggerisco di creare prima una RequestBin a http://requestb.in/ e utilizzando tale come URL abbonato endpoint. In questo modo puoi facilmente vedere i dati che Fitbit invia quando qualcuno si sincronizza. È possibile copiare la stringa JSON nel codice dell'endpoint dell'URL del sottoscrittore e verificare come si desidera gestire i dati prima di impostare il sito come URL dell'endpoint della sottoscrizione.
Un paio di altre lezioni che ho imparato:
A seconda del numero di utenti che si hanno si consiglia l'URL abbonato su un server diverso. Questo URL verrà colpito ogni volta che un utente sincronizza il proprio Fitbit che può causare molto traffico. Fitbit disabiliterà il tuo URL di sottoscrizione se fallisce il 10% delle volte o più o se non è in grado di rispondere entro 3 secondi.
Un'altra parte importante è che questo non ti invio i più recenti dati degli utenti. Ti consente solo di sapere che hanno aggiornato i loro dati. Devi ancora fare una richiesta API per ottenere i loro ultimi dati. Puoi anche fare solo 150 richieste API per utente all'ora, quindi potrebbe essere utile porre un limite alla frequenza con cui controlli ogni utente. Ho avuto alcuni utenti che si sincronizzavano costantemente e che ha portato alla ricezione di e-mail ogni ora da Fitbit che indicava che la mia app aveva superato il limite tariffario per tali utenti.
Questo collegamento sotto ha codice di esempio con quadro Fitbit [link] http://stackoverflow.com/questions/34393507/fitbit-framework-is-available/34393522#34393522 – Karthik