action.devices.SYNC
這項意圖會要求與指定使用者相關聯的裝置清單及其功能。
這個事件會在帳戶連結期間或使用者手動重新同步裝置時觸發。你的履行服務應針對每部裝置,回應支援的特徵和屬性。
SYNC 回應應傳回與使用者相關聯的所有裝置。
這項設定不會決定是否可連線至任何特定裝置。這會由 QUERY 和 EXECUTE 回應處理。
詳情請參閱「識別及同步處理」。
要求格式
| 欄位 | 類型 | 說明 | 
|---|---|---|
| requestId | String | 必要。 要求的 ID。 | 
| inputs | 陣列 | 必要。 符合意圖要求的輸入內容清單。 | 
| [item, ...] | 物件 | 與意圖要求相關聯的類型和酬載。 | 
| intent | 必要。 (常數值: 意圖要求類型。 | 
範例
SYNC 意圖要求
{
  "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
  "inputs": [
    {
      "intent": "action.devices.SYNC"
    }
  ]
}回覆格式
| 欄位 | 類型 | 說明 | 
|---|---|---|
| requestId | String | 必要。 對應要求的 ID。 | 
| payload | 物件 | 必要。 意圖回應酬載。 | 
| agentUserId | String | 必要。 反映代理商平台上的專屬 (且不可變更) 使用者 ID。Google 無法解讀這個字串,因此如果代理商端有不可變動的表單和可變動的表單,請使用不可變動的表單 (例如帳號,而非電子郵件地址)。 | 
| errorCode | String | SYNC 發生系統性錯誤 | 
| debugString | String | 詳細錯誤,不會向使用者顯示,但可能會記錄或在開發期間使用。 | 
| devices | 陣列 | 必要。 使用者擁有的裝置清單。傳回零或多部裝置 (零部裝置表示使用者沒有裝置,或已將所有裝置取消連結)。 | 
| [item, ...] | 物件 | 裝置中繼資料。 | 
| id | String | 必要。 開發人員雲端中的裝置 ID。這項 ID 對使用者和開發人員來說都必須是專屬的,因為在分享的情況下,我們可能會使用這項 ID,避免重複計算同一部裝置的多個觀看次數。這項 ID 應為裝置專屬,且不得變更。如果變更,Google 助理會將裝置視為新裝置。 | 
| type | String | 必要。 裝置的硬體類型。 | 
| traits | 陣列 | 必要。 這部裝置擁有的特徵清單。這會定義裝置支援的指令、屬性和狀態。 | 
| [item, ...] | String | 支援的特徵名稱。 | 
| name | 物件 | 必要。 這部裝置的名稱。 | 
| defaultNames | 陣列 | 開發人員而非使用者提供的名稱清單,通常是製造商名稱、SKU 等。 | 
| [item, ...] | String | 裝置預設名稱。 | 
| name | String | 必要。 裝置的主要名稱,通常由使用者提供。Google 助理也會優先使用這個名稱來描述裝置。如果名稱超過 60 個 Unicode 碼點 (字元) 的限制,系統會截斷名稱,且不會擲回錯誤。開發人員有責任處理名稱過長的問題。 | 
| nicknames | 陣列 | 使用者為裝置提供的其他名稱。 | 
| [item, ...] | String | 裝置暱稱。 | 
| willReportState | 布林值 | 必要。 指出這個裝置的狀態是否會透過即時動態饋給更新。(設為 true 可使用即時動態饋給回報狀態,設為 false 則使用輪詢模型)。 | 
| notificationSupportedByAgent | 布林值 | (預設值: 指出裝置是否已啟用通知。 | 
| roomHint | String | 提供使用者住家中裝置的目前房間,簡化設定程序。 | 
| deviceInfo | 物件 | 包含描述裝置的欄位,可在需要時用於一次性邏輯 (例如「燈具 Y 的韌體版本 X 有問題,需要調整顏色」,或「安全漏洞需要通知所有韌體 Z 的使用者」)。 | 
| manufacturer | String | 如果開發人員是其他裝置的集線器,這項功能就特別實用。Google 可能會在此提供標準製造商清單,讓 TP-Link 和 Smartthings 等製造商以相同方式描述「osram」。 | 
| model | String | 特定裝置的型號或 SKU ID。 | 
| hwVersion | String | 如果有的話,請提供與硬體相關的特定版本號碼。 | 
| swVersion | String | 軟體/韌體的特定版本號碼 (如有)。 | 
| attributes | 物件 | 與各特徵結構定義參考資料中說明的特徵屬性一致。 | 
| customData | 物件 | 開發人員定義的物件,會附加至日後的 QUERY 和 EXECUTE 要求,每個裝置最多 512 個位元組。使用這個物件儲存雲端服務可能需要的裝置相關資訊,例如裝置的全球區域。這個物件中的資料有幾項限制:不得包含任何敏感資訊,包括但不限於個人識別資訊。 | 
| otherDeviceIds | 陣列 | 用於識別雲端同步裝置以供本機執行的替代 ID 清單。 | 
| [item, ...] | 物件 | 替代裝置 ID。 | 
| agentId | String | 服務專員的 ID。一般來說,這是 Actions 控制台中的專案 ID。 | 
| deviceId | String | 必要。 代理程式定義的裝置 ID。裝置 ID 不得重複。 | 
範例
同步意圖回應
{ "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf", "payload": { "agentUserId": "1836.15267389", "devices": [ { "id": "123", "type": "action.devices.types.OUTLET", "traits": [ "action.devices.traits.OnOff" ], "name": { "defaultNames": [ "My Outlet 1234" ], "name": "Night light", "nicknames": [ "wall plug" ] }, "willReportState": false, "roomHint": "kitchen", "deviceInfo": { "manufacturer": "lights-out-inc", "model": "hs1234", "hwVersion": "3.2", "swVersion": "11.4" }, "otherDeviceIds": [ { "deviceId": "local-device-id" } ], "customData": { "fooValue": 74, "barValue": true, "bazValue": "foo" } }, { "id": "456", "type": "action.devices.types.LIGHT", "traits": [ "action.devices.traits.OnOff", "action.devices.traits.Brightness", "action.devices.traits.ColorSetting" ], "name": { "defaultNames": [ "lights out inc. bulb A19 color hyperglow" ], "name": "lamp1", "nicknames": [ "reading lamp" ] }, "willReportState": false, "roomHint": "office", "attributes": { "colorModel": "rgb", "colorTemperatureRange": { "temperatureMinK": 2000, "temperatureMaxK": 9000 }, "commandOnlyColorSetting": false }, "deviceInfo": { "manufacturer": "lights out inc.", "model": "hg11", "hwVersion": "1.2", "swVersion": "5.4" }, "customData": { "fooValue": 12, "barValue": false, "bazValue": "bar" } } ] } }