2013-04-27 32 views
0

當測試我的mirror-api gem時,我發現在訂閱:列表中調用了我的訂閱ID「時間線」的ID。這是一個錯誤還是期望的行爲?我認爲這是因爲訂閱:get以ID爲參數。爲什麼我的訂閱有「時間軸」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" 
     } 
    ] 
} 

回答

5

所以,我沒有對API Explorer中的一些測試,似乎爲每個用戶只能有一個最大的兩個訂閱,一爲「時間表」和一個「位置」的,這也將得到這些相應的ID。

當你已經有一個「時間軸」訂閱,試圖插入另一個會覆蓋現有的。例如,你不能有一個callbackUrl插入時間線,另一個插入時間線(這是好的,因爲你總是可以在你的回調中分割請求)。

只有兩個訂閱可能,只有兩個匹配的ID並不是真正的問題。事實上,事情變得更簡單了(如果你可以依賴這種行爲,因爲它沒有真正的記錄),因爲如果你需要更新或刪除一個訂閱,你不需要記住(或通過subscriptions.list找到)一個隨機的ID來使用subscriptions.update或subscriptions.delete

他們實際使用的集合作爲ID利用這種行爲的樣品中爲subscriptions.updatesubscriptions.delete

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

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

我想這是用這種方式來阻止你實現意外地爲同一用戶提供同一事物的多個訂閱,但如果這確實是期望的行爲,它應該包含在文檔中。

相關問題