我刚刚开始使用Tweepy而且我正在尝试构建一个非常简单的机器人,它将使用Twitter自动化我家中的一些东西(主要是为了娱乐和学习Tweepy)。我已经浏览了Tweepy文档,无法在不知道邮件ID的情况下了解如何从我自己的帐户中检索最新的直接邮件。
我假设我可以使用API.get_direct_messages()
方法,但它需要一个消息ID(我不知道)。任何人都可以告诉我正确的方法来做到这一点?我使用的是Python3
谢谢!
答案 0 :(得分:1)
您似乎混淆了两种不同的方法。 direct_messages()
method(不含get_
)应该会为您提供直接消息列表。
get_direct_message()
(单数)从其ID返回单个直接消息。
答案 1 :(得分:1)
您可以获取过去30天内发送给已验证用户的所有Twitter DM。根据tweepy的官方文档,这是语法;
API.list_direct_messages([count][, cursor])
count
是您要检索的邮件数,cursor
将结果分成页面。
由于您特别需要 最后一条消息 ,因此您可以将count
的值设置为1。这将返回最后的DM。您无需知道它的ID即可检索它。
last_dms = api.list_direct_messages(1)
for messages in last_dms:
print(messages)
api.list_direct_messages()
返回DirectMessageObjects
的列表,因此需要使用循环来打印单个对象。那应该解决您的问题。但是,如果您想对DM进行更多处理,则可以从返回的对象中提取信息,以执行所需的任何操作。这是一个示例DM对象
*
DirectMessage(_api =, type ='message_create',id ='xxxxxxxxxxxxxxxxxx', created_timestamp ='1587925077545',message_create = {'target': {'recipient_id':'xxxxxxxxx'},'sender_id':'xxxxxxxxxxxxxxxxxxx', 'source_app_id':'258901','message_data':{'text':'我爱你', 'entities':{'hashtags':[],'symbols':[],'user_mentions':[], 'urls :: []}}})
*
该对象中的信息可用于完成很多我在本文中不会涉及的内容。提出问题已经很久了,但是我希望这对其他人有帮助。 Adios!