亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用 JS 向 Google Fit REST Api 添加會話和信息的問題

使用 JS 向 Google Fit REST Api 添加會話和信息的問題

慕村225694 2022-10-08 14:58:08
所以我對將 API 與 Js 一起使用是相當新的,但我很難理解 Google Fit API 的工作原理。我正在嘗試通過添加會話和會話強度(心臟點)的一些數據來將新的鍛煉數據添加到 API。我可以讓會話正確顯示,但是當我嘗試創建數據源并為會話添加一個點時會遇到不斷的錯誤。如果有人可以幫助我修復我的代碼以實現此目的,或者可以將我引導到類似代碼的更詳盡示例,因為 API 文檔似乎不太詳細的示例等,將不勝感激。提前致謝。這是到目前為止我編寫的 3 個 api 調用,一個用于創建 DataSource,一個用于 DataPoint,一個用于 Session。該會話正常工作,并為正確的活動添加了 1 小時的會話,但我無法讓任何其他 API 請求正常工作。數據源 :``gapi.client.fitness.users.dataSources.create({             "userId":"me",             "resource": {                "application": {                "name": "LittleWorkouts"              },              "dataType": {"field":[{                "format": "floatPoint",                "name": "com.google.heart_minutes"              }],                "name": "com.google.heart_minutes"              },              "device": {                "manufacturer": "op",                "model": "6",                "type": "phone",                "uid": "1000019",                "version": "1"              },              "type": "raw"             }         })        .then(function(response) {                // Handle the results here (response.result has the parsed body).                console.log("Response", response);              },              function(err) { console.error("Execute error 1", err); });``數據點 :``    gapi.client.fitness.users.dataSources.datasets.patch({      "dataSourceId":"raw:com.google.heart_minutes:292824132082:op:6:1000019",      "userId": "me",      "datasetId": "1592087806561000000-1592287806561000000",      "resource": {  "minStartTimeNs": "1592087806561000000",  "maxEndTimeNs": "1592287806561000000",  "dataSourceId": "raw:com.google.heart_minutes:292824132082:op:6:1000019",  "point": [    {      "startTimeNanos": "1592087806561000000",      "endTimeNanos": "1592287806561000000",      "value": [        {          "fpVal": 89.1        }      ],      "dataTypeName": "com.google.heart_minutes"    }  ]}``錯誤信息{消息:“無法獲取數據集的數據源:raw:com.google.heart_minutes:292824132082:op:6:1000019”,域:“global”,原因:“invalidArgument”}
查看完整描述

2 回答

?
qq_花開花謝_0

TA貢獻1835條經驗 獲得超7個贊

看起來您可能試圖為數據類型傳遞錯誤的字段:如果您想使用標準數據類型(如com.google.heart_minutes),您應該傳遞標準數據類型的確切字段(字段應稱為“強度”);或者只是傳遞數據類型名稱,后端將為您填寫它們。

因此,如果您將數據類型更改為

"dataType": {"name": "com.google.heart_minutes"}

它應該工作。

然后,您需要使用從該請求返回的數據源 ID 來獲取數據點。


查看完整回答
反對 回復 2022-10-08
?
瀟瀟雨雨

TA貢獻1833條經驗 獲得超4個贊

太棒了,所以在評論中得到一些支持后,我有一些工作代碼可以使用 3 個 API 調用添加一個包含來自先前定義的數據源的數據的新會話。第一個調用是創建數據源,只需要運行一次。然后第二個和第三個將數據點添加到數據集中并分別為鍛煉創建一個新會話。這是最終的工作代碼:


數據源:


/*

         gapi.client.fitness.users.dataSources.create({

             "userId":"me",

             "resource": {

                "application": {

                "name": "LittleWorkouts"

              },

              "dataType": {

                "name": "com.google.heart_minutes"

              },

              "device": {

                "manufacturer": "op",

                "model": "6",

                "type": "phone",

                "uid": "1000020",

                "version": "1"

              },

              "type": "raw"

             }

         })

        .then(function(response) {

                // Handle the results here (response.result has the parsed body).

                console.log("Response", response);

              },

              function(err) { console.error("Execute error 1", err); });

  */

數據和數據集:


gapi.client.fitness.users.dataSources.datasets.patch({

      "dataSourceId":"raw:com.google.heart_minutes:108881196053:op:6:1000020",

      "userId": "me",

      "datasetId": z,

      "resource": {

  "minStartTimeNs": workoutStartTime * 1000000,

  "maxEndTimeNs": workoutEndTime * 1000000,

  "dataSourceId": "raw:com.google.heart_minutes:108881196053:op:6:1000020",

  "point": [

    {

        "originDataSourceId": "raw:com.google.heart_minutes:108881196053:op:6:1000020",

      "value": [

        {

          "fpVal": 8

        }

      ],

      "dataTypeName": "com.google.heart_minutes",

      "endTimeNanos": workoutEndTime * 1000000,

      "startTimeNanos": workoutStartTime * 1000000,

    }

  ]

}

    })

        .then(function(response) {

                // Handle the results here (response.result has the parsed body).

                console.log("Response", response);

              },

              function(err) { console.error("Execute error 2", err); });

會議:


gapi.client.fitness.users.sessions.update({

            "userId":"me",

            "sessionId": id,

            "id": id,

            "name": "Morning Workout",

            "description": "A very intense workout",

            "startTimeMillis": workoutStartTime,

            "endTimeMillis": workoutEndTime,

            "version": 1,

            "lastModifiedToken": "exampleToken",

            "application": {

                "detailsUrl": "http://example.com",

                "name": "LittleWorkouts",

                "version": "1.0"

            },

            "activityType": 21,

            "activeTimeMillis": workoutEndTime - workoutStartTime

            }).then((res) => {console.log(res)});

            console.log('res')


查看完整回答
反對 回復 2022-10-08
  • 2 回答
  • 0 關注
  • 162 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號