2016-12-19 44 views
2

在我的應用程序中,我調用API調用來獲取用戶的Fitbit數據,當我調用API獲取每日活動摘要時空活動數組。Fitbit「獲取每日活動摘要」API調用獲取空的「活動」數組

我從這個API調用中得到了一切,只是活動數組出現爲空[]。以下是API調用的示例響應。

{ 
    "activities":[ 

    ], 
    "goals":{ 
     "caloriesOut":2826, 
     "distance":8.05, 
     "floors":150, 
     "steps":10000 
    }, 
    "summary":{ 
     "activityCalories":230, 
     "caloriesBMR":1913, 
     "caloriesOut":2143, 
     "distances":[ 
     { 
      "activity":"tracker", 
      "distance":1.32 
     }, 
     { 
      "activity":"loggedActivities", 
      "distance":0 
     }, 
     { 
      "activity":"total", 
      "distance":1.32 
     }, 
     { 
      "activity":"veryActive", 
      "distance":0.51 
     }, 
     { 
      "activity":"moderatelyActive", 
      "distance":0.51 
     }, 
     { 
      "activity":"lightlyActive", 
      "distance":0.51 
     }, 
     { 
      "activity":"sedentaryActive", 
      "distance":0.51 
     }, 
     { 
      "activity":"Treadmill, 0% Incline", 
      "distance":3.28 
     } 
     ], 
     "elevation":48.77, 
     "fairlyActiveMinutes":0, 
     "floors":16, 
     "lightlyActiveMinutes":0, 
     "marginalCalories":200, 
     "sedentaryMinutes":1166, 
     "steps":0, 
     "veryActiveMinutes":0 
    } 
} 
+0

你JSON是具有空' 「活動」 的:[]'。這就是爲什麼它被清空。調用API時可能有問題。 – Saadi

+0

這就是我說的@Saadi。在進行API調用之後,我得到一個空的activites數組,一切正常,只是沒有在「activities」數組中獲取值。 – NewbieCoder

+0

您的通話/問題在web api中有問題。我無法判斷它。 – Saadi

回答

1

我們可以通過兩種方式記錄活動。

  1. 登錄到fitbit門戶(https://www.fitbit.com/)並手動記錄一個活動。
  2. 同步您的fitbit設備與您的應用程序(android或iphone)。

在第一種情況下, 當您請求記錄活動的那一天時,您將獲得活動集合。

假設你已經登錄的活動12月18日2016年

請求URL:https://api.fitbit.com/1/user/-/activities/date/2016-12-18.json

響應:

{ 
    "activities": [ 
    { 
     "activityId": 12030, 
     "activityParentId": 90009, 
     "activityParentName": "Run", 
     "calories": 530, 
     "description": "Running - 5 mph (12 min/mile)", 
     "distance": 1, 
     "duration": 3600000, 
     "hasStartTime": true, 
     "isFavorite": false, 
     "lastModified": "2016-12-19T12:07:51.124Z", 
     "logId": 5218814487, 
     "name": "Run", 
     "startDate": "2016-12-18", 
     "startTime": "06:00", 
     "steps": 843 
    } 
    ], 
    "goals": { 
    "activeMinutes": 30, 
    "caloriesOut": 2689, 
    "distance": 8.05, 
    "steps": 10000 
    }, 
    "summary": { 
    "activeScore": -1, 
    "activityCalories": 1658, 
    "caloriesBMR": 1588, 
    "caloriesOut": 2927, 
    "distances": [ 
     { 
     "activity": "Run", 
     "distance": 1 
     }, 
     { 
     "activity": "total", 
     "distance": 7.42 
     }, 
     { 
     "activity": "tracker", 
     "distance": 7.1 
     }, 
     { 
     "activity": "loggedActivities", 
     "distance": 1 
     }, 
     { 
     "activity": "veryActive", 
     "distance": 1.99 
     }, 
     { 
     "activity": "moderatelyActive", 
     "distance": 0.03 
     }, 
     { 
     "activity": "lightlyActive", 
     "distance": 5.41 
     }, 
     { 
     "activity": "sedentaryActive", 
     "distance": 0 
     } 
    ], 
    "fairlyActiveMinutes": 1, 
    "lightlyActiveMinutes": 297, 
    "marginalCalories": 961, 
    "sedentaryMinutes": 108, 
    "steps": 9982, 
    "veryActiveMinutes": 74 
    } 
} 

在第二種情況下,在這裏你有fitbit行爲跟蹤,你不會通過fitbit band獲得數據記錄的活動代碼。您可以在fitbit門戶中檢查這些數據。這將被記錄爲活動記錄。

但你會得到摘要部分。您將在哪裏找到所需的有用信息。像步驟,卡路里燒等。所以總是使用總結部分代替活動收集。

在你的情況下,你還沒有記錄任何活動,這就是爲什麼你沒有得到任何活動集合 。除了活動收集之外,即使當天沒有活動,您獲得的數據也是我們獲得的默認數據。

+0

我在我的iPhone上安裝了Fitbit應用程序,並且手機已同步,因此我不需要記錄活動。在我的C#應用​​程序中,我只是對「獲取活動」進行API調用,並獲得空的「活動」數組作爲響應。我希望你明白。 – NewbieCoder

+0

對於通過設備同步的數據,我們將獲得「空閒活動」。通過設備記錄的數據不會記錄爲特定的活動,例如散步,跑步等。因此,我們不會收到「活動」集合。我們應該使用摘要對象來獲取步驟,卡路里消耗,距離等信息。 – Manav

+0

謝謝@Manav。感謝你的幫助。有沒有提到這個? – NewbieCoder

0

試試這個:

它會給Fitbit在他們的網站上顯示的活動列表。

https://api.fitbit.com/1/user/ {fitbit用戶ID} /activities/list.json?beforeDate=2017-09-29 &排序=降序&偏移= 0 &限制= 20