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

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 會與其他用戶端不同。

dataStreamName string 這個串流名稱可識別同一資料來源中,其他相同類型的資料來源。設定串流名稱是選擇性的,但當應用程式曝露了同一資料類型的兩個串流,或者裝置有兩個對等的感應器時,即可完成這項設定。
dataType nested object 資料類型定義了從 Fitness 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) == obfuscated(id2)。

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

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

方法

建立
建立此使用者的所有資料來源中不重複的資料來源。

資料來源是感應器資料的唯一來源,資料來源可能會揭露本機或隨附裝置的硬體感應器的原始資料。此外,也可以公開轉換或合併其他資料來源產生的衍生資料。相同資料類型可能會有多個資料來源。每個從 Fitness API 插入或讀取的每個資料集裡,每個資料點都有相關聯的資料來源。

每個資料來源都會產生一組不重複的資料集更新,其中包含專屬資料來源 ID。並非所有資料來源的變更都會影響資料串流 ID,因此由相同應用程式/裝置更新版本收集的資料仍可視為同一個資料來源。

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

指定非已知類型 DataType (開頭為 com.google.") 將建立具有自訂資料類型的 DataSource。自訂資料類型僅供建立的應用程式讀取。自訂資料類型已淘汰,請改用標準資料類型。

除了資料來源 ID 中包含的資料來源欄位之外,開發人員建立號碼時也會完成驗證的開發人員專案編號。其他開發人員讀取公開資料類型時,對這個開發人員專案編號進行模糊處理。
刪除
刪除指定的資料來源。如果資料來源包含任何資料點,要求就會失敗。
取得
傳回指定的資料來源。
list
使用提供的 OAuth 範圍,列出開發人員能看到的所有資料來源。這份清單並不完整,使用者可能只有其他開發人員看得到的私人資料來源,或是使用其他範圍的呼叫。
更新
更新指定的資料來源。dataStreamIddataTypetypedataStreamNamedevice 屬性除外,但 version 除外。

資料來源以 dataStreamId 來識別。