Users.dataSources: update

更新指定資料來源。dataStreamId dataTypetypedataStreamNamedevice 屬性 (version 除外), 無法修改。

資料來源由其「dataStreamId」識別。 立即試用

要求

HTTP 要求

PUT https://www.googleapis.com/fitness/v1/users/userId/dataSources/dataSourceId

參數

參數名稱 說明
路徑參數
dataSourceId string 要更新的資料來源的資料串流 ID。
userId string 更新所識別對象的資料來源。使用 me 即可: 指出已通過驗證的使用者。目前僅支援 me 讓應用程式從可以最快做出回應的位置 回應使用者要求

授權

這項要求需要授權,且至少要有下列其中一個範圍:

範圍
https://www.googleapis.com/auth/fitness.activity.write
https://www.googleapis.com/auth/fitness.location.write
https://www.googleapis.com/auth/fitness.body.write
https://www.googleapis.com/auth/fitness.nutrition.write
https://www.googleapis.com/auth/fitness.blood_pressure.write
https://www.googleapis.com/auth/fitness.blood_glucose.write
https://www.googleapis.com/auth/fitness.oxygen_saturation.write
https://www.googleapis.com/auth/fitness.body_temperature.write
https://www.googleapis.com/auth/fitness.reproductive_health.write

詳情請參閱「驗證與授權」網頁。

要求主體

在要求主體中,提供 Users.dataSources 資源並附上以下屬性:

屬性名稱 說明 附註
必要屬性
application nested object 提供將感應器資料饋送至平台的應用程式相關資訊。
application.name string 這個應用程式的名稱。這對於 REST 用戶端來說是必要項目,但是我們不會強制規定這個名稱。為方便其他開發人員找出建立應用程式或資料來源的 REST 版本,這項資料可以派上用場。
dataStreamId string 這個資料來源產生的資料串流專屬 ID。ID 包括:

  • 實體裝置的製造商、型號和序號 (UID)。
  • 應用程式的套件名稱或名稱。資料來源由 Android 應用程式建立時,系統會使用套件名稱。當資料來源由 REST 用戶端建立時,系統會使用開發人員專案編號。
  • 資料來源的類型。
  • 資料來源的串流名稱。
請注意,並非所有資料來源屬性都會用於串流 ID。具體來說,未使用硬體/應用程式的版本。如此一來,我們就能在版本更新時保留相同的串流內容。這也表示兩個 DataSource 物件可能代表同一個資料串流,即使兩者不相同也一樣。

Android 應用程式建立的資料串流 ID 格式如下:type:dataType.name:application.packageName:device.manufacturer:device.model:device.uid:dataStreamName

REST 用戶端建立的資料串流 ID 確切格式為:type:dataType.name:developer project number:device.manufacturer:device.model:device.uid:dataStreamName

如果沒有構成資料串流 ID 的任何選填欄位,系統會將這些欄位從資料串流 ID 中省略。最小可行的資料串流 ID 如下:type:dataType.name:developer 專案編號

最後,任何未建立資料來源的 REST 或 Android 用戶端讀取時,開發人員專案編號和裝置 UID 都會經過模糊處理。只有資料來源建立者,才會看到開發人員專案編號,以清楚一般的形式呈現。這表示用戶端會看到一組不同的 data_stream_ids,也只會看到其他使用不同憑證的用戶端。

dataType nested object 資料類型定義了透過 Fitness API 收集、插入或查詢資料串流的結構定義。
dataType.field[] list 欄位代表資料類型的一個維度。
dataType.field[].format string 資料類型中每個欄位的不同支援格式。

可接受的值為:
  • blob
  • floatList
  • floatPoint
  • integer
  • integerList
  • map
  • string
dataType.field[].name string 定義資料的名稱和格式。與資料類型名稱不同的是,欄位名稱並非命名空間,而且只需在資料類型中不得重複。
dataType.name string 每種資料類型都有不重複的命名空間名稱com.google 命名空間中的所有資料類型都屬於這個平台,
device nested object 表示可容納感應器的整合式裝置 (例如手機或穿戴式裝置)。
device.manufacturer string 產品/硬體的製造商。
device.model string 使用者可見的裝置型號名稱。
device.type string 代表裝置類型的常數。

可接受的值為:
  • chestStrap
  • headMounted
  • phone
  • scale
  • smartDisplay
  • tablet
  • unknown
  • watch
device.uid string 硬體的序號或其他專屬 ID。任何未建立資料來源的 REST 或 Android 用戶端讀取時,這個欄位會模糊處理。只有資料來源建立者才會看到清楚一般格式的 uid 欄位。

此模糊處理可維持相等性;也就是兩個 ID。如果 id1 == id2,obfuscated(id1) == obfuscated(id2)。

device.version string 裝置硬體/軟體的版本字串。
type string 說明這個資料來源類型的常數。指出這個資料來源會產生原始或衍生的資料。

可接受的值為:
  • derived
  • raw

回應

如果成功,這個方法會在回應主體中傳回 Users.dataSources 資源

試試看!

使用下方的 APIs Explorer,針對即時資料呼叫這個方法,看看會有什麼結果。