联系人可让您的 Glassware 接收不是由其创建的时间轴项。 用户必须通过点按卡片的图标,明确与您的联系人分享时间轴项 共享菜单项。
运作方式
创建共享联系人后,共享时间轴卡片将按照以下常规流程操作:
- 创建联系人,并定义您的联系人支持的 MIME 类型。
- 将该联系人插入到用户的时间轴中。
- 用户收到包含 Share 菜单项的时间轴项。Glassware 必须明确允许用户与此菜单项共享其项目。
- 用户点按时间轴项,选择分享菜单项,然后选择您的联系人。
- Mirror API 会创建共享时间轴卡片的副本,向您的联系人授予对该副本的访问权限,并将该副本插入用户的时间轴。您的 Glassware 无法访问原始时间轴项。
- 如果您 订阅了共享通知, 您会收到一个包含时间轴卡标识信息的载荷。 然后,您可以使用 Timeline.get 类的行为。
- 您可以修改共享时间轴卡片并更新现有时间轴卡片 以及 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 的生日是明天!”


如需使用语音指令,请执行以下操作:
指定
acceptCommands属性与相应的type:{ ... "displayName": "Cat Stream", "id": "CAT_STREAM", "acceptCommands": [ {"type": "POST_AN_UPDATE"} ] }订阅时间轴通知 接收通知。Google Glassware 获得的 在发生上述情况时发送通知:
{ "collection": "timeline", "operation": "UPDATE", "userToken": "<USER_TOKEN>", "verifyToken": "<VERIFY_TOKEN>", "itemId": "<ITEM_ID>", "userActions": [ {"type": "LAUNCH"} ] }使用
itemId获取时间轴项:{ "id": "<ITEM_ID>", "text": "Chipotle's birthday is tomorrow", "recipients": [ {"id": "CAT_STREAM"} ] }如果多个 Glassware 使用同一语音指令注册联系人, Glass 显示第二级菜单,显示
displayName。 然后,用户可以说出他们选择的联系人。如果您的联系人displayName包含 字符不发音或没有发音,请使用speakableName媒体资源 来声明共享联系人的预期发音。
分享照片的图片说明
用户可以与您的 Glassware 分享照片,同时 生成相应的标注。一般的用户流如下所示: