2013-07-16 47 views
1

我有一个基于Android的应用程序,我正在开发Glass应用程序作为伴侣。添加新时间轴项目时更新捆绑套件

代码的应用程序生命在两个地方:

  • 的Web应用程序(OAuth认证/令牌创建,创建订阅,处理通知,从谷歌服务器回调)
  • Android应用(创建共享式接触,删除共享联系人并为“相册”创建捆绑包)

处理完所有OAuth身份验证并与Mirror API进行通信后,用户可以在Android应用程序中创建共享联系人。该流程的一部分包括创建一个时间线项目,作为相册的封面封面。

在Glass上,当用户与该联系人共享照片时,我的网络应用程序中的通知处理程序会将照片分配给建立共享联系人时创建的包。

所有这些工作正常 - 没有问题。

我遇到的情况是,7天后,时间线卡开始从Glass界面下落。这包括我的“相册”的封面封面。

很明显,我需要更新捆绑包才能保持活动状态,但我不太确定如何做到这一点(没有快速翻阅我的配额,就是这样)。使用Mirror API,我已经能够从时间线中检索项目,然后检查每个项目的包裹(基于包ID和isBundleCover标志) - 但是,如果要保存每个1000个请求,这是非常低效的天。我是否仅仅以不适合的方式使用包?

是否有一种更容易,更有效的方式获取捆绑套并仅更新它,使其在7天后不会脱离时间轴?在某种程度上,似乎我不应该在每次分享新照片时更新包,但我不确定替代方案。

正如我所提到的,该软件包是在Android应用程序中创建的,并且该ID被提交给Web应用程序和Android应用程序共享的后端数据库。在使用bundleID查询该数据库以获取捆绑包的原始ItemID之后,我不确定如何使通知处理程序中的捆绑ItemID可访问。

谢谢你的任何建议!

回答

3

当它涉及到维护API配额将你的包盖的itemID保存在自己的数据存储,需要

除此之外,还有一些事情的时候从那里取回你所提到的最有效的方法您可以通过Mirror API更轻松地在时间线上查找卡片,因为timeline.list方法提供了一些额外的参数来缩小结果范围。

  1. ?bundleId=yourBundleId

    这只会返回与所提供的bundleId结果,这取决于有多少卡在你的包,你会发现第一个结果页面上进行必要的卡,这样就只需要一个API请求

  2. &sourceItemId=something

    如果你的包越来越相当大,这样的包盖不会在第一个结果页面上可以发现,有一两件事你可以做的是另外的请定义一个sourceItemId,您只将其设置为包裹封面,而不包含包裹内的其他卡片。这种方式寻找bundleId + sourceItemId(你也可以设置为相同的bundleId,使其更容易)将只有一个项目,捆绑包的结果。

使用那些你应该能够找到正确的卡在一个请求,并在第二个请求更新的方法。

+0

感谢您对我的理论的评论和确认,以了解如何处理更新。如果在接下来的几天内没有提交其他想法,我会接受这个答案。再次感谢! – Kyle