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

Dre*_*ann 0 google-glass google-mirror-api

在测试我的mirror-api gem时,我注意到在订阅:list上调用我的订阅ID"timeline"的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"
      }
   ]
}
Run Code Online (Sandbox Code Playgroud)

Sca*_*ami 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()
Run Code Online (Sandbox Code Playgroud)

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