在测试我的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"
}
]
}
答案 0 :(得分:5)
所以我针对API资源管理器进行了一些测试,似乎对于每个用户,您最多只能有两个订阅,一个用于“时间线”,一个用于“位置”,这也将获得这些相应的ID。
如果您已经有“时间轴”订阅,尝试插入另一个订阅将覆盖现有订阅。因此,例如,你不能有一个callbackUrl用于时间轴插入,另一个用于时间线删除(我猜这很好,因为你总是可以在你的回调中相应地拆分请求)。
只有两个订阅可能,只有两个匹配的ID并不是真正的问题。并且实际上使事情变得更容易(如果您可以依赖此行为,因为它没有真正记录),因为如果您需要更新或删除订阅,则无需记住(或通过subscriptions.list查找)随机ID subscriptions.update或subscriptions.delete
他们实际上在subscriptions.update和subscriptions.delete的示例中使用此行为,并将该集合用作id:
service.subscriptions().update(id=collection, body=subscription).execute()
service.subscriptions().delete(collection).execute()
我想这是以这种方式实现的,以防止您意外地为同一个用户同时拥有多个订阅,但如果这确实是所需的行为,那么它应该包含在文档中。