API 使用案例

镜像 API 提供了一组基础组件,可供您用来为 Glass 构建服务。由于 Glass 服务可能与您开发的其他软件不同,因此可能很难想到如何结合使用 镜像 API 的功能。

许多服务都属于几类 API。下面的一些故事说明了如何组合使用 镜像 API 的功能来创建 Glass 服务。

猫咪小知识

将内容传送到 Glass 时间轴是使用 Google 镜像 API 的一种简单而强大的方式。针对猫咪样本的 Glassware 可向用户提供有关猫的事实信息,可能会遵循以下流程:

  1. 用户访问您的 Web 应用,并通过 OAuth 2.0 进行身份验证。
  2. 您的服务每小时都会为每个用户的 Glass 提供新的猫咪信息。

可使用时间轴插入方法实现猫咪知识:

猫咪知识图

  1. 用户通过 OAuth 2.0 进行身份验证
  2. Cat Facts 可存储用户及其凭据的索引
  3. 每个小时,Cat Facts 都会发布新的猫咪信息。其方法是遍历存储的所有用户并在其时间轴中插入时间轴项。

加个猫

人类技术进步的每一步都为猫猫照片的分发方式提供了更好的方法。Project Glass 也不例外。

每张照片都有猫的陪伴,因此这项服务可以合成一张随机的猫图片,以及用 Glass 拍摄的照片。

  1. 用户访问您的 Web 应用,并通过 OAuth 2.0 身份验证安装“在猫中添加应用”。
  2. 您的服务会在用户的 Glass 上创建一个名为“Add a Cat to That”(向其中添加猫猫)的新联系人。
  3. 当用户拍照时,他们可以通过“Add a Cat to That”(向其中添加猫)来分享照片。
  4. 您的服务会将一张猫的随机图片合成到分享的照片上。
  5. 最后,您的服务会将猫咪增强照片提供给用户的 Glass。

在架构方面,此服务将遵循以下 API 流程:

向流中添加猫

  1. 您的用户通过 OAuth 2.0 授权。您的服务存储其凭据。
  2. 在 OAuth 2.0 舞蹈结束后,你的服务会插入一个名为“Add a Cat to That”的联系人。
  3. 接下来,您的服务会插入 timeline 集合的订阅,从而订阅该用户的时间轴中的更新。完成设置后,就可以添加猫咪了。
  4. 随着时间的推移,您的用户会拍摄照片。
  5. 您的用户通过“Add a Cat to That”(向其中添加猫咪)分享照片。这将使您的服务可以访问与此照片关联的时间轴卡片。
  6. 由于您的服务订阅了时间轴更新,因此系统会向您的服务发送通知。此通知会链接到包含所分享照片的时间轴项。
  7. 您的服务会检查通知,并使用包含的 id 获取包含照片的时间轴卡片。
  8. 接下来,您的服务会检查时间轴项,并使用附件 ID 来获取照片的字节。
  9. 您的服务会随机选择猫的图片,然后将它合成到共享的照片中。
  10. 最后,您的服务会构建一个新的时间轴卡片,并将其插入用户的时间轴卡片中,同时附上猫咪效果增强照片。

附近的宠物店

关于猫或猫的图片,唯一比实际的事情要好,那就是真实的、毛茸茸的猫咪。镜像 API 可确保您始终知道最近的宠物店在哪里,从而简化这项工作。

用量遵循以下流程:

  1. 用户访问您的 Web 应用,并通过 OAuth 2.0 进行身份验证。
  2. 您的服务决定用户的位置。
  3. 您的服务会搜索该位置附近的宠物店。
  4. 您的服务会在时钟左侧插入一张卡片,其中会列出附近的这些宠物店。
  5. Glass 会将用户的位置告知服务。
  6. 对于每条通知,您的服务都会重复搜索宠物店,然后更新固定的卡片来反映最近的一组宠物店。

实现此 API 时需遵循以下 API 流程:

附近的宠物店

  1. 您的用户通过 OAuth 2.0 授权。除了常规的 glass.timeline 范围之外,您的应用还需要请求 glass.location 范围的访问权限。
  2. 在 OAuth 2.0 舞蹈结束后,您的服务会订阅用户所在位置的更新。
  3. 接下来,您的服务会从位置端点提取用户的最新位置。
  4. 您的服务会搜索您用户附近的宠物店。
  5. 您的服务会创建一个 timeline 卡片,其中会列出宠物商店搜索结果。为了让这张卡片位于时钟屏幕的左侧,您的服务会固定此卡片。
  6. 随着用户四处移动,他们的最新位置也会更新。
  7. 由于您的服务订阅了位置信息更新,因此系统会向您的服务发送通知。此通知会链接到“location”集合中的“latest”项。
  8. 您的服务会根据该通知从 location 集合中提取用户的 latest location
  9. 接下来,您的服务会搜索您用户附近的宠物店。
  10. 最后,您的服务会使用 patch 方法更新第 5 步中插入的时间轴项的正文。