0

在测试我的mirror-api gem时,我注意到在订阅:列表中调用我的订阅 ID“时间轴”的 ID。这是一个错误还是期望的行为?我认为它已关闭,因为 subscriptions: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"
      }
   ]
}
4

1 回答 1

5

所以我对 API explorer 做了一些测试,似乎每个用户最多只能有两个订阅,一个用于“时间线”,一个用于“位置”,它们也将获得这些各自的 ID。

当您已经有一个“时间线”订阅时,尝试插入另一个将覆盖现有的。因此,例如,您不能有一个用于时间线插入的 callbackUrl 和另一个用于时间线删除的 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()

我想这是以这种方式实现的,以防止您意外地为同一用户对同一事物进行多次订阅,但如果这确实是所需的行为,则应将其包含在文档中。

于 2013-04-27T09:14:21.520 回答