原文地址:http://bbs.seacat.cn/thread-885-1-2.html
联系
联系可以是人或Glassware,用户可以分享timelineitem。默认情况下,Glassware不能访问时间表并没有创建的项目。允许用户通过Glassware分享timelineitem,即使timelineitem并没有创建。
下面有两种方法,你的Glassware可以使用contant:
允许用户与其他用户分享你的timeline items。添加分享内置菜单项到时间轴卡片。当用户点击分享菜单项、谷歌眼镜显示的列表可能分享给联系人。有关更多信息,请参见开发人员指南 menuitems如何添加内置菜单项。
允许用户通过你的Glassware共享timeline item:创建一个代表你的Glassware。当用户想要分享一个时间轴卡片,你的联系人可以作为一个选项。你也可以声明一个可接受的MIME类型列表( acceptable MIME types),这样你的联系人只出现您感兴趣的卡片。当用户共享一个时间轴卡片你会得到通知,你可以订阅timeline通知。
创建一个contact
允许用户通过你的Glassware来分享timelineitems,插入一个contact通过post一段json(JSON representation of a contact)给插入的REST端点(insert REST endpoint.)
所有的联系人都必须指定一个id。用来在Glassware接收通知时识别。你还必须指定一个displayName和至少一个imageUrl,好在谷歌眼镜上显示联系人的信息给用户。
注意:为达到最佳效果,imageUrl使用PNG的图像,背景色要透明,分辨率是640x360.
Raw 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
}
可以从共享timeline items(shared timelineitems)来获取更多的关于如何处理通知的资料。
分享是如何工作的
一旦你创建一个共享contact,分享时间轴卡片一般遵守这个流程
1.用户滑动时间轴项,选择共享菜单项,选择你的联系人
2.MirrorAPI创建一个共享时间轴卡片的副本,给你联系人访问,并将副本插入用户的timeline。你的Glassware不能访问原始的时间轴卡片
3.如果你订阅了分享通知(subscribed to share notifications),你会收到一个包含时间轴卡片的识别信息,你可以通过Timeline.get方法来检索timelineitem。
4.你通过Timeline.update方法来更新共享时间轴卡片和现有的时间轴卡片。
注意:你应该为你的Glassware添加识别品牌来区分从最初的timeline item复制过来的timeline item。用更新复制的timeline item的方式来代替插入一个新的timeline item。
下面的屏幕截图展示了在谷歌眼镜上如何分享联系人
用户有可能会通过Glassware分享照片并插入一篇演讲的标题。一般通过下面这几步:
1. 用户轻触一项包含照片的timeline item,选择共享菜单项。接着选择联系人
2. 用户在短时间内轻触这张照片来给它添加一个标题
3. 用户说出标题
4. Timeline item和你的Glassware开始共享工作,就像之前描述的那样。此外,timeline item的文本(text)属性会把用户说的话转录成标题。
声明语音菜单命令
你可以让用户在菜单插入语音命令“ok glass”通过你的Contact来共享timeline item。触发后,语音命令会通过你的contact来共享timeline item还包括转录用户的演讲,你可以为你的contact声明下面的语音命令:
・ ~ "take a note"
・ ~ "post an update"
注意:请求支持其他的语音指令,建议填写一个语音命令表单(Suggest a GlassVoice Command form)
使用语音命令,指定接收指令(acceptCommands)属性与适当的类型
{
...
"displayName": "Cat Stream",
"id": "CAT_STREAM",
"acceptCommands": [
{"type": "POST_AN_UPDATE"}
]
}
5.png
下载附件保存到相册
{
"collection": "timeline",
"operation": "UPDATE",
"userToken": "<USER_TOKEN>",
"verifyToken": "<VERIFY_TOKEN>",
"itemId": "<ITEM_ID>",
"userActions": [
{"type": "LAUNCH"}
]
}
然后,您可以使用itemId获取timeline的值
{
"id": "<ITEM_ID>",
"text": "Chipotle's birthday is tomorrow",
"recipients": [
{"id": "CAT_STREAM"}
]
}
与媒体分享,你应该修改共享时间轴卡片和通过 Timeline.update.方法来更新现有的时间轴卡片。