我試圖簡單地刪除由我的應用程序創建的幾張卡片。但是,看起來好像list()
方法在整個用戶的時間軸中循環遍歷每張卡片。如何刪除屬於我的應用的所有卡片?
我的代碼稍微修改了timeline list
下的文檔示例。當我嘗試使用這個功能時,它會在操作超時之前的幾秒鐘內意外地在我的時間線中循環使用我的整個1,000 /天的配額。
def delete_previous_cards(self):
"""
This cleans up any cards that may have been leftover.
"""
result = []
request = self.mirror_service.timeline().list()
while request:
try:
timeline_items = request.execute()
result.extend(timeline_items.get('items', []))
request = self.mirror_service.timeline().list_next(request, timeline_items)
except errors.HttpError, error:
print 'An error occurred: %s' % error
break
for item in result:
item_id = item['id']
self.mirror_service.timeline().delete(id=item_id).execute()
什麼是有效刪除我的應用程序創建的卡片的最佳方式?
你的代碼看起來對我來說是正確的。時間表列表僅列出Glassware有權訪問的卡片。這僅包括您創建的卡或通過與Glassware共享創建的卡。但它似乎有些東西了。爲什麼你懷疑它列出所有卡? – mimming
我相當確信(a)我發佈的代碼不好或(b)'list()'函數獲取每張卡(不僅僅是我的應用程序創建的)。我的推理?我的應用程序只創建了2-3張卡,循環應該是即時的。然而,運行上面的代碼導致這樣的結果:http://i.imgur.com/9LBUxWV.png我在幾秒鐘內意外地使用了我的整個API調用配額! –
明白了。另一種可能性是退出條件未被觸發。 Mirror API使用遊標,因此可能會通過無盡的空白頁面進行分頁。您可以通過記錄每個頁面中的記錄數量來測試它。您可能還需要一個逃生艙添加到該代碼,以便它幾次迭代(而不是所有1000您的定額限制)後退出 – mimming