Users.dataSources

感應器資料來源的定義。資料來源可能會公開來自本機或隨附裝置硬體感應器的原始資料。也可以公開衍生資料,也就是轉換或合併其他資料來源建立的資料。同一資料類型可以有多個資料來源。插入或讀取這項服務的每個資料點都有相關聯的資料來源。 

資料來源包含足以識別其資料的資訊,包括硬體裝置和蒐集和/或轉換資料的行為。也會顯示實用的中繼資料,例如硬體和應用程式版本,以及裝置類型。 

每個資料來源都會產生一組專屬 ID 的不重複資料串流。不過,對資料來源所做的所有變更都不會影響串流 ID,因此同一個應用程式/裝置的新版收集的資料仍會視為同一個資料串流。

如需本資源的方法清單,請見本頁結尾。

資源表示法

{
  "dataStreamId": string,
  "name": string,
  "dataStreamName": string,
  "type": string,
  "dataType": {
    "name": string,
    "field": [
      {
        "name": string,
        "format": string,
        "optional": boolean
      }
    ]
  },
  "device": {
    "uid": string,
    "type": string,
    "version": string,
    "model": string,
    "manufacturer": string
  },
  "application": {
    "packageName": string,
    "version": string,
    "detailsUrl": string,
    "name": string
  },
  "dataQualityStandard": [
    string
  ]
}
資源名稱 說明 附註
application nested object 將感應器資料提供給平台的應用程式相關資訊。
application.detailsUrl string 選用的 URI,可用來連結回應用程式。
application.name string 這個應用程式的名稱。此為 REST 用戶端的必要欄位,不過我們不會強制規定此名稱是否重複。方便其他開發人員找出哪個 REST 建立了應用程式或資料來源,方便他們查看上述資料。
application.packageName string 此應用程式的套件名稱。由 Android 應用程式建立時,這會做為專屬 ID,但 REST 用戶端無法指定。REST 用戶端的開發人員專案編號會反映在資料來源資料串流 ID,而非 packageName。
application.version string 應用程式的版本。每當應用程式變更會影響資料計算的方式,您就應該更新這個欄位。
dataQualityStandard[] list 請勿填入此欄位。絕對不會填入來自平台的回應,且會在查詢中忽略。並在日後推出的版本中完全移除。
dataStreamId string 這個資料來源產生的資料串流專屬 ID。這組 ID 包括:

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

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



type:dataType.name:developer project number:device.manufacturer:device.model:device.uid:dataStreamName可行的資料串流 ID 下限為:type:dataType.name:開發人員專案編號

最後,如果由未建立資料來源的任何 REST 或 Android 用戶端讀取,開發人員專案編號和裝置 UID 就會經過模糊處理。只有資料來源建立者可以查看開發人員專案編號,而且格式是一般的。也就是說,用戶端會看到不同的 data_stream_ids 組合,與具有不同憑證的其他用戶端不同。

dataStreamName string 串流名稱專門用來在相同基礎製作者的其他相同類型的資料來源中,識別此特定資料來源。您可以選擇是否設定串流名稱,但每當應用程式公開相同資料類型的兩個串流,或裝置有兩個同等感應器時,就會採用這項設定。
dataType nested object 資料類型會定義健身 API 所收集、插入或查詢資料串流的結構定義。
dataType.field[] list 欄位代表一種資料類型的一個維度。
dataType.field[].format string 資料類型中各欄位支援的格式。

可接受的值如下:
  • "blob"
  • "floatList"
  • "floatPoint"
  • "integer"
  • "integerList"
  • "map"
  • "string"
dataType.field[].name string 定義資料的名稱和格式。與資料類型名稱不同的是,欄位名稱並非命名空間,而且只需要在資料類型中不得重複。
dataType.field[].optional boolean
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 欄位。

模糊化會維持相等性,也就是說,如果 id1 == id2,如果 id1 == id2,則 obfuscated(id1) == obfuscated(id2)。

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

可接受的值如下:
  • "derived"
  • "raw"

方法

建立
在這位使用者擁有的所有資料來源中,建立不重複的新資料來源。

資料來源是感應器的不重複資料來源。資料來源可能會公開來自本機或隨附裝置硬體感應器的原始資料。也可以公開衍生資料,也就是轉換或合併其他資料來源而建立的資料。同一資料類型可以有多個資料來源。從 Fitness API 插入或讀取的每個資料集的每個資料點都具有關聯的資料來源。

每個資料來源都會產生一組有專屬資料來源 ID 的專屬更新資料集更新。資料來源的變更不一定會影響資料串流 ID,因此相同應用程式/裝置的更新版本收集的資料仍會視為屬於同一資料來源。

系統會根據建立的來源內容,使用伺服器產生的字串來識別資料來源。叫用這個方法時,不應設定 dataStreamId 欄位。伺服器將會以正確的格式自動產生憑證。如果設定了 dataStreamId,就必須與伺服器產生的格式相符。這種格式是資料來源中部分欄位的組合,且具有特定順序。如果不相符,要求就會失敗,並顯示錯誤。

指定非已知類型的 DataType (以「com.google.」開頭) 將透過自訂資料類型建立 DataSource。只有建立自訂資料類型的應用程式可以讀取這些類型。自訂資料類型已淘汰,請改用標準資料類型。

除了資料來源 ID 包含的資料來源欄位外,也包含在建立資料來源時驗證的開發人員專案編號。當其他任何讀取公開資料類型的開發人員讀取時,這個開發人員專案編號都會經過模糊處理。
刪除
刪除指定的資料來源。如果資料來源包含任何資料點,要求就會失敗。
get
傳回指定的資料來源。
list
使用提供的 OAuth 範圍列出開發人員可檢視的所有資料來源。該清單僅列舉部分項目;使用者可能有隻有其他開發人員能查看的私人資料來源,或使用其他範圍的呼叫。
更新
更新指定的資料來源。dataStreamIddataTypetypedataStreamNamedevice 屬性 (version 除外) 無法修改。

資料來源由其dataStreamId識別。