谷歌眼镜Mirror API开发指南之Timeline
原文地址:http://bbs.seacat.cn/thread-873-1-2.html
Timeline Items
用户通过他们的timeline来获取信息,主要途径是通过timelineitems。也可以称之为卡片。在Glassware中滑动时间轴卡片,可以显示更多的之前或者之后的卡片。
你可以从一个timeline中插入、更新阅读和删除时间轴卡。此外,您可以将对象附加到一个时间表卡上,如位置信息或媒体信息。
注意:因为时间轴卡片是用户体验的核心,所以在创建时间表之前先了解下UI guidelines
可操作时间表的完整列表项,见referencedocumentation。
您可以在menu items(菜单项卡片)上为用户提供选项来执行时间轴卡片。
插入一个timeline item
插入一个时间表项目,发布一个JSON表示的时间项REST端点。
注意:用户的谷歌眼镜会删除持续7天的timeline items,如果不更新十天的话,谷歌的服务器也会将其删除。
大多数timelineitem的字段是可选的。最简单的形式,一个时间表项只包含一个简短的短信,就像在下面这个例子.
RawHTTP代码
[mw_shl_code=java,true]POST /mirror/v1/timeline HTTP/1.1
Host: [url=http://www.googleapis.com]www.googleapis.com[/url]
Authorization: Bearer {auth token}
Content-Type: application/json
Content-Length: 26{ "text": "Hello world" }
Java代码:
TimelineItem timelineItem = new TimelineItem();timelineItem.setText("Hello world");service.timeline().insert(timelineItem).execute();
Python代码:
timeline_item = {'text': 'Hello world'}service.timeline().insert(body=timeline_item).execute()
调用成功后,你得到http返回码201和完整副本创建的项目。对于前面的示例,一个成功的响应可能看起来像下面这样:
Raw HTTP:
HTTP/1.1 201 CreatedDate: Tue, 25 Sep 2012 23:30:11 GMTContent-Type: application/jsonContent-Length: 303{"kind": "glass#timelineItem","id": "1234567890","selfLink": "https://www.googleapis.com/mirror/v1/timeline/1234567890","created": "2012-09-25T23:28:43.192Z","updated": "2012-09-25T23:28:43.192Z","etag": "\"G5BI0RWvj-0jWdBrdWrPZV7xPKw/t25selcGS3uDEVT6FB09hAG-QQ\"","text": "Hello world"}
插入的项将出现在用户的时间表如下
1.png (4.09 KB, 下载次数: 1)
下载附件 保存到相册
2013-12-24 16:51 上传
插入一个带附件的时间表
一张图片胜过一千个单词,这是一个更多的比你可以放入一个时间表。为此,您也可以把图片和视频放入一个timeline item。下面是一个示例,如何插入 附件照片在 一个timeline item。
RawHTTP:
POST /upload/mirror/v1/timeline HTTP/1.1Host: [url=http://www.googleapis.com]www.googleapis.com[/url]Authorization: Bearer {auth token}Content-Type: multipart/related; boundary="mymultipartboundary"Content-Length: {length}--mymultipartboundaryContent-Type: application/json; charset=UTF-8{ "text": "A solar eclipse of Saturn. Earth is also in this photo. Can you find it?" }--mymultipartboundaryContent-Type: image/jpegContent-Transfer-Encoding: binary[binary image data]--mymultipartboundary--
Java代码:
TimelineItem timelineItem = new TimelineItem();timelineItem.setText("Hello world");InputStreamContent mediaContent = new InputStreamContent(contentType, attachment);service.timeline().insert(timelineItem, mediaContent).execute();
Python代码:
timeline_item = {'text': 'Hello world'}media_body = MediaIoBaseUpload(io.BytesIO(attachment), mimetype=content_type, resumable=True)service.timeline().insert(body=timeline_item, media_body=media_body).execute()
带图像的timelineitem在用户的的谷歌眼镜看起来像下面这样:
注意:在初级水平,附件要通过HTTP Multipart上传。使用Google APIs客户端库media upload可以让这个变得更简单。
连接视频
如果你把视频文件添加到你的timeline item中,我们建议你使用流媒体而不是一次性把整个文件上传上去,Google MirrorAPI支持HTTP live streaming.渐进式下载。以及RTSP协议。RTSP不推荐使用,因为经常会被防火墙阻止。
对于流视频,可以使用PLAY_VIDEO内置菜单来播放指定视频的url地址。可以看到添加内置菜单项和支持的媒体格式的更多信息。
注意:附件流视频的url使用内置菜单的PLAY_VIDEO。a content-type of video/vnd.google-glass.stream-url已经被弃用了。
随意翻阅
你可以随意的翻阅timeline items,除非只有一张时间轴卡片。也不应该有相同的卡片。分页的items都共享与同一个timeline.id。因此当用户轻触timelineitem时候,应该弹出一个菜单项。
谷歌眼镜自动分页显示timeline item的text。为了让谷歌眼镜自动分页显示html。将article类的属性设置为auto-paginate。就想下面的例子:
<article class="auto-paginate"><h3>Very long list</h3><ul><li>First item</li><li>Second item</li><li>Third item</li><li>Fourth item</li><li>Fifth item</li><li>Sixth item</li><li>...</li></ul><article>
注意:目前在使用auto-paginate类还不支持部分标记。
为了实现手动分页,在你想显示的每个卡片内容处使用标签。谷歌眼镜显示的每一篇文章内容都标记在一个sub-timeline卡片中,下面的例子就是你创建一个分页的timeline item通过html。
<article><section><p>First page</p></section></article><article><section><p>Second page</p></section></article><article><section><p>Third page</p></section></article>
默认情况下,分页timeline itmes的第一张卡片设置为封面和用户选择菜单项后再次显示,为了防止这种情况。你可以在第一个个article使用cover-only
<article class="cover-only">...
同样也支持自动翻页 timeline items
<article class="auto-paginate cover-only">...
以下图片显示的绑定了两张卡片的卡,注意页面右上角的卷角。
GET /mirror/v1/timeline HTTP/1.1Host: [url=http://www.googleapis.com]www.googleapis.com[/url]Authorization: Bearer {auth token}
Java代码:
TimelineItem timelineItem = new TimelineItem();service.timeline().list().execute();
service.timeline().list().execute()
你可以使用对timeline items使用其他的操作。比如get, update 和 delete
访问附件:
你可以访问timeline items通过一个数组属性的 attachments。然后你可以通过attachmentsendpoint获取一个contentUrl来下载文件的二进制数据。
注意:附件内容受OAuth 2.0保护,就像其他调用API端点。Google API客户端库提供的二进制内容附件使用媒体下载功能。
Raw HTTP
GET /mirror/v1/timeline/{itemId}/attachments/{attachmentId} HTTP/1.1Host: [url=http://www.googleapis.com]www.googleapis.com[/url]Authorization: Bearer {auth token}
Java代码
TimelineItem item = service.timeline().get(itemId).execute();String attachmentId = item.getAttachments().get(0).getId();service.attachments().get(itemId, attachmentId).executeAsInputStream();
谷歌眼镜Mirror API开发指南之Timeline相关推荐
- 谷歌眼镜Mirror API开发指南之Contacts
原文地址:http://bbs.seacat.cn/thread-885-1-2.html 联系 联系可以是人或Glassware,用户可以分享timelineitem.默认情况下,Glassware ...
- 谷歌眼镜Mirror API开发指南之Subscriptions
原文地址:http://bbs.seacat.cn/thread-883-1-2.html 订阅 Mirrror API允许当用户需要具体的Timeline Item和当用户的位置发送改变时发送订阅通 ...
- 百度地图API开发指南
百度地图API开发指南 本文为百度地图API官方版本的开发指南,供各位51CTO的网友进行参考. 简介什么是百度地图API? 百度地图API是一套由JavaScript语言编写的应用程序接口,它能够帮 ...
- 百度地图api开发详解(android版).pdf,百度地图API开发指南原版.pdf
百度地图API开发指南原版 百度地图 API 开发指南 百度地图 API 开发指南 目录 简介 3 什么是百度地图 API 3 面向的读者 3 获取 API 3 开发移动平台上的地图应用 3 兼容性 ...
- 如何开发API,这样一份完整的API开发指南足够了
API一词相信每一个开发人员都不陌生,API是软件系统之间或不同组成部分之间进行连接的约定.特别是移动应用程序和微服务架构的不断普及,API就是他们成功背后的功臣,这个时候如何设计和开发API就显得格 ...
- 谷歌眼镜Mirror API Reference之Timeline
原文地址:http://bbs.seacat.cn/thread-891-1-1.html Timeline 这个资源的方法列表,在文章的末尾 资源表示形式 用户Timeline中的每一项都被表示为一 ...
- 谷歌眼镜Mirror API之Menu Items
原文链接:http://bbs.seacat.cn/thread-874-1-2.html Menu Items(菜单项) 传播内容是只有一半的故事.最有趣的服务还允许用户通过菜单项与时间轴卡来互动. ...
- 谷歌眼镜Mirror app开发之简单新闻浏览页面
Mirror app和Google glass其他APP一样,UI简洁很重要,所以我们需要设计一下怎么布局. 本人的布局如下: 有个绿色的标题,白色的简介还有蓝色的来源,布局很简单,代码如下 1 &l ...
- Android修炼之道——GoogleGlass开发指南
Google Glass 开发指南 https://developers.google.com/glass/ 时间轴(Timeline) 你的用户的时间轴被分为时间表项目.您可以使用API接入和管 ...
最新文章
- Mac下修改环境变量
- 同一服务器 数据库间 不同表 的查询
- Python基础教程【读书笔记】 - 2016/7/5
- 【Alpha】第一次Daily Scrum Meeting
- valueOf()、toString()
- css实现文字太长,显示省略号
- 使用SQLyog连接MySQL数据库
- 开源视频会议系统:OpenMeetings 安装方法
- 数据库性能测试:sysbench用法详解
- 软件测试周刊(第31期):所有的伟大 都源于一个勇敢的开始
- SparkSQL HiveSQL 常用正则表达式
- ROS2入门教程—录制/回放数据
- LUP分解求解线性方程组及求逆矩阵 java
- 图片去水印的原理_图片中的水印怎么去除
- Python能不能只选择合并一个excel当中指定的sheet 当中指定的列呢?
- Ubuntu18.04之微信中文乱码解决(五十八)
- 【NDN实验】ndnSIM: NDN simulator for NS-3 全文翻译
- 2万字系统总结,带你实现 Linux 命令自由?
- 计算机网络学习07(DNS域名系统详解)
- 安装完Ubuntu 16.04之后要做的一些事