通讯录

联系人可让您的 Glassware 接收不是由其创建的时间轴项。 用户必须通过点按卡片的图标,明确与您的联系人分享时间轴项 共享菜单项。

运作方式

创建共享联系人后,共享时间轴卡片将按照以下常规流程操作:

  1. 创建联系人,并定义您的联系人支持的 MIME 类型。
  2. 将该联系人插入到用户的时间轴中。
  3. 用户收到包含 Share 菜单项的时间轴项。Glassware 必须明确允许用户与此菜单项共享其项目。
  4. 用户点按时间轴项,选择分享菜单项,然后选择您的联系人。
  5. Mirror API 会创建共享时间轴卡片的副本,向您的联系人授予对该副本的访问权限,并将该副本插入用户的时间轴。您的 Glassware 无法访问原始时间轴项。
  6. 如果您 订阅了共享通知, 您会收到一个包含时间轴卡标识信息的载荷。 然后,您可以使用 Timeline.get 类的行为。
  7. 您可以修改共享时间轴卡片并更新现有时间轴卡片 以及 Timeline.update 的类。

何时使用此类附加信息

默认情况下,Glassware 无法访问并非由其创建的时间轴项 因此联系人会在征得用户同意的情况下允许 Glassware 分享 Glassware 数据。

Glassware 主要通过以下两种方式使用联系人信息:

  • 允许用户与其他联系人共享时间轴项:将 SHARE 内置菜单项 添加到时间轴卡片当用户点按“分享”菜单项时,Google Glass 会显示一个列表 个可能的联系人。

  • 允许用户与您的 Glassware 共享时间轴项:创建联系人 代表 Google Glassware 的当用户想要分享时间轴卡片时,您的 联系人选项出现。你还可以声明一个 可接受的 MIME 类型 ,以便仅显示您感兴趣的卡片上的联系人。 若要接收有关用户何时与您的联系人分享时间轴卡片的通知,您可以 订阅时间轴通知。

创建联系人

如要允许用户与您的 Glassware 共享时间轴项,请插入 通过向联系人发布 联系人的 JSON 表示法 插入 REST 端点

所有联系人都必须指定 id,用于标识 Glassware 的联系人 接收通知。您还必须指定 displayName 以及至少 1 个 imageUrls,供 Google 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 可能会 请尝试向您的服务重新发送通知。

正在接收语音转写内容

用户可以通过语音主菜单与您的联系人分享转写的语音。 目前,您的联系人可以使用两种语音指令:

  • “添加记事”
  • “发布更新”

例如,用户可以告诉我们 Chipotle 的 即将到来的生日时,附有一条指令:“Ok Glass... 发布最新动态... 猫咪信息流...Chipotle 的生日是明天!”

如需使用语音指令,请执行以下操作:

  1. 指定 acceptCommands 属性与相应的 type:

    {
      ...
    
      "displayName": "Cat Stream",
      "id": "CAT_STREAM",
      "acceptCommands": [
        {"type": "POST_AN_UPDATE"}
      ]
    }
    
  2. 订阅时间轴通知 接收通知。Google 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 属性为 以用户的转写说明文字集。