Подсчет не работает с api.list_direct_messages (Tweepy)

#python #tweepy

Вопрос:

Я пытаюсь создать функцию для удаления последних 5 DMS, отправленных в проекте, над которым я работаю, но я могу отправлять только все DMS, которые достигают предела скорости, поэтому заставляю Tweepy ждать более 30 секунд. Код:

 import tweepy

CONSUMER_KEY = 'private'
CONSUMER_SECRET = 'private'
ACCESS_KEY = 'private'
ACCESS_SECRET = 'private'
auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
auth.set_access_token(ACCESS_KEY, ACCESS_SECRET)
api = tweepy.API(auth)

dms = api.list_direct_messages(5)
print(len(dms))
for i in range(len(dms)):
    api.destroy_direct_message(dms[i]._json['id'])
 

Когда я запускаю его, print(len(dms))
выводит 0, показывая, что он вообще не получил список.

Ответ №1:

count Параметр для конечной точки API Twitter GET direct_messages/события/список, который API.list_direct_messages используется, — это «максимальное количество возвращаемых событий».
Не гарантируется, что вернется так много.

Вместо этого вы должны использовать Cursor для перебора 5 прямых сообщений.

Кроме того, вы можете получить доступ id непосредственно в качестве атрибута DirectMessage объектов.