2016-01-13 69 views
0

我正在努力獲取一些fitbit數據,並使用oauth2過程,以便我可以獲得對朋友數據的授權訪問。 我的代碼示例正在爲授權工作,但我希望獲得的不僅僅是活動數據中的「步驟」。 我在想我應該能夠以fitbit dev網站上顯示的json格式獲得活動。然後可能將其泵入數據庫,但這將是下一個任務。 我遇到一些困難的代碼是:Node Js json提取

app.get('/stats', function(req, res) { 
client = new Fitbit("myid", 
     "mykey", { // Now set with access 
      // tokens 
      accessToken : req.session.oauth.accessToken, 
      accessTokenSecret : req.session.oauth.accessTokenSecret, 
      unitMeasure : 'en_GB' 
     }); 

// Fetch activities 
client.getActivities(function(err, activities) { 
    if (err) { 
     // Take action 
     console.log("at get activities"); 
     return; 
    } 

    res.send('Steps: ' + activities.steps()); 
    //res.json(activities()); 
}); 

});

上面的代碼重定向回到網頁http://myweburl/stats並顯示的步驟和值是好的,但如果我可以返回它作爲一個JSON文件,會更好。 我看到了一些信息,說res.json可能是我需要的,但那是行不通的。 在此先感謝。 Binway

+0

你想要的JSON返回的所有活動信息,或只是步驟? – Signus

回答

0

嘗試響應使用下面的代碼:

JSON.stringify({ steps : activities.steps()}, null, '\t'); 
0

這是因爲你送串出,而不是JSON的。

嘗試這樣:

client.getActivities(function(err, activities) { 
    if (err) { 
    // Take action 
    console.log("at get activities"); 
    return; 
    } 
    let response = JSON.stringify({ steps: activities() }) 

    res.json(response); 
}); 
+0

感謝JSON.stringify代碼。我曾以各種形式嘗試過,但沒有結果。我能夠修改代碼以至少將JSON數據導入到Console.log中。我的代碼的底線現在看起來像(對格式化抱歉)res.send('今天的總步驟:'+ activities.steps()); \t \t console.log(「Distance:」+ JSON.stringify(activities));.我認爲我的代碼需要改變,以便更適合fitbit建議的過程 - 例如 - GET https://api.fitbitcom/1/user/ [user-id]/activities/date/[date] .json – binway