聯絡人

聯絡人可讓 Glassware 接收不是由自己建立的時間軸項目。 使用者必須輕觸資訊卡的「分享」選單項目,才能明確與聯絡人分享時間軸項目。

運作方式

建立分享對象後,分享時間軸資訊卡的一般流程如下:

  1. 建立聯絡人,並定義聯絡人支援的 MIME 類型。
  2. 將聯絡人插入使用者的時間軸。
  3. 使用者會收到含有「分享」選單項目的時間軸項目。Glassware 必須明確允許使用者透過這個選單項目共用項目。
  4. 使用者輕觸時間軸項目,選取「分享」選單項目,然後選取您的聯絡人。
  5. Mirror API 會建立共用時間軸資訊卡的副本,並授予聯絡人副本存取權,然後將副本插入使用者的時間軸。你的 Glassware 無法存取原始時間軸項目。
  6. 如果您訂閱分享通知,就會收到含有時間軸資訊卡的識別資訊的酬載。然後,您可以使用 Timeline.get 擷取時間軸項目。
  7. 修改共用時間軸資訊卡,並使用 Timeline.update 更新現有時間軸資訊卡。

使用時機

根據預設,Glassware 無法存取自己未建立的時間軸項目,因此聯絡人可讓 Glassware 在使用者同意的情況下,與其他 Glassware 分享資料。

Glassware 主要有兩種使用聯絡人的方式:

  • 允許使用者與其他聯絡人分享時間軸項目:在時間軸資訊卡中新增SHARE內建選單項目。使用者輕觸分享選單項目時,Glass 會顯示可分享的聯絡人清單。

  • 允許使用者與 Glassware 分享時間軸項目:建立代表 Glassware 的聯絡人。使用者想分享時間軸資訊卡時,您的聯絡人會顯示為選項。您也可以宣告可接受的 MIME 類型清單,這樣聯絡人只會顯示在您感興趣的資訊卡上。如要在使用者與聯絡人分享時間軸資訊卡時收到通知,可以訂閱時間軸通知。

建立聯絡人

如要允許使用者與 Glassware 分享時間軸項目,請將聯絡人的 JSON 表示法 POST 到插入 REST 端點,藉此插入聯絡人。

所有聯絡人都必須指定 id,用來識別接收通知的 Glassware 聯絡人。您也必須指定 displayName 和至少一個 imageUrls,Glass 會使用這些資訊向使用者顯示聯絡資訊。

原始 HTTP

POST /mirror/v1/contacts HTTP/1.1
Authorization: Bearer {auth token}
Content-Type: application/json
Content-Length: {length}

{
  "id": "harold"
  "displayName": "Harold Penguin",
  "iconUrl": "https://developers.google.com/glass/images/harold.jpg"
  "priority": 7
}

訂閱分享通知

透過 Mirror API,您可以訂閱通知,在使用者對時間軸項目執行特定動作或使用者位置更新時收到通知。訂閱通知時,您會提供處理通知的回呼網址。

Mirror API 會以 POST 要求的形式,將通知傳送至訂閱的端點,其中包含 JSON 要求主體。

原始 HTTP

{
  "collection": "timeline",
  "itemId": "3hidvm0xez6r8_dacdb3103b8b604_h8rpllg",
  "operation": "INSERT",
  "userToken": "harold_penguin",
  "verifyToken": "random_hash_to_verify_referer",
  "userActions": [
    {
      "type": "SHARE"
    }
  ]
}

itemId 屬性是共用時間軸項目的 ID,可與 Timeline.get 搭配使用,取得時間軸項目。以下範例顯示附有相片的典型時間軸項目:

{
  "id": "3hidvm0xez6r8_dacdb3103b8b604_h8rpllg",
  "attachments": [
      {
          "contentType": "image/jpeg",
          "id": "<ATTACHMENT_ID>"
      }
  ],
  "recipients": [
      {
          "kind": "glass#contact",
          "source": "api:<SERVICE_ID>",
          "id": "<CONTACT_ID>",
          "displayName": "<CONTACT_DISPLAY_NAME>",
          "imageUrls": [
              "<CONTACT_ICON_URL>"
          ]
      }
  ]
}

如果未發生錯誤,您的服務必須以 200 OK HTTP 狀態碼回應 API。如果服務傳回錯誤碼,Mirror API 可能會嘗試將通知重新傳送至服務。

接收語音轉錄內容

使用者可以透過主語音選單,與聯絡人分享轉錄的語音內容。目前聯絡人可以使用兩項語音指令:

  • 「新增記事」
  • 「發布最新消息」

舉例來說,使用者可以說出「Ok Glass... post an update to...」(Ok Glass... 貼文更新到...),向我們告知 Chipotle 即將到來的生日。Cat Stream... 明天是 Chipotle 的生日!」

如要使用語音指令,請按照下列步驟操作:

  1. 使用適當的 type 指定 acceptCommands 屬性:

    {
      ...
    
      "displayName": "Cat Stream",
      "id": "CAT_STREAM",
      "acceptCommands": [
        {"type": "POST_AN_UPDATE"}
      ]
    }
    
  2. 訂閱時間軸通知,即可在轉錄語音內容時收到通知。發生下列情況時,Glassware 會收到通知:

    {
      "collection": "timeline",
      "operation": "UPDATE",
      "userToken": "<USER_TOKEN>",
      "verifyToken": "<VERIFY_TOKEN>",
      "itemId": "<ITEM_ID>",
      "userActions": [
        {"type": "LAUNCH"}
      ]
    }
    
  3. 使用 itemId 擷取時間軸項目:

    {
      "id": "<ITEM_ID>",
      "text": "Chipotle's birthday is tomorrow",
      "recipients": [
        {"id": "CAT_STREAM"}
      ]
    }
    
  4. 如果有多個 Glassware 透過相同語音指令註冊聯絡人,Glass 會顯示第二層選單,列出每個聯絡人的 displayName。接著說出要撥打電話的聯絡人。如果聯絡人的 displayName包含無法發音的字元或不符合語音規則,請使用 speakableName 屬性, 宣告分享聯絡人的預期發音。

共享相片的說明文字

使用者可以透過語音輸入說明文字,並將相片分享到 Glassware。一般使用者流程如下:

  1. 使用者輕觸含有相片的時間軸項目,選取「分享」選單項目,然後選取你的聯絡人。
  2. 使用者在短時間內再次輕觸相片,即可新增說明文字。
  3. 使用者說出說明文字。
  4. 時間軸項目會與 Glassware 共用,如先前「運作方式」一節所述。此外,時間軸項目的 text 屬性會設為使用者的轉錄字幕。