为什么我的订阅有ID“时间轴”?

时间:2013-04-27 02:18:51

标签: google-mirror-api google-glass

在测试我的mirror-api gem时,我注意到在订阅:列表中调用我的订阅ID“时间轴”的ID。这是一个错误还是想要的行为?我认为它已关闭,因为订阅:get将ID作为参数。

{
   "kind":"mirror#subscriptionsList",
   "items":[
      {
         "kind":"mirror#subscription",
         "id":"timeline",
         "updated":"2013-04-21T15:21:31.385Z",
         "collection":"timeline",
         "operation":[
            "UPDATE"
         ],
         "callbackUrl":"myapp.com/notification",
         "verifyToken":"a_very_important_token_obvi",
         "userToken":"1"
      }
   ]
}

1 个答案:

答案 0 :(得分:5)

所以我针对API资源管理器进行了一些测试,似乎对于每个用户,您最多只能有两个订阅,一个用于“时间线”,一个用于“位置”,这也将获得这些相应的ID。

如果您已经有“时间轴”订阅,尝试插入另一个订阅将覆盖现有订阅。因此,例如,你不能有一个callbackUrl用于时间轴插入,另一个用于时间线删除(我猜这很好,因为你总是可以在你的回调中相应地拆分请求)。

只有两个订阅可能,只有两个匹配的ID并不是真正的问题。并且实际上使事情变得更容易(如果您可以依赖此行为,因为它没有真正记录),因为如果您需要更新或删除订阅,则无需记住(或通过subscriptions.list查找)随机ID subscriptions.update或subscriptions.delete

他们实际上在subscriptions.updatesubscriptions.delete的示例中使用此行为,并将该集合用作id:

service.subscriptions().update(id=collection, body=subscription).execute()

service.subscriptions().delete(collection).execute()

我想这是以这种方式实现的,以防止您意外地为同一个用户同时拥有多个订阅,但如果这确实是所需的行为,那么它应该包含在文档中。