使用python / Tweepy从Twitter获取最新的直接消息

时间:2017-03-05 01:43:24

标签: python twitter tweepy

我刚刚开始使用Tweepy而且我正在尝试构建一个非常简单的机器人,它将使用Twitter自动化我家中的一些东西(主要是为了娱乐和学习Tweepy)。我已经浏览了Tweepy文档,无法在不知道邮件ID的情况下了解如何从我自己的帐户中检索最新的直接邮件。

我假设我可以使用API.get_direct_messages()方法,但它需要一个消息ID(我不知道)。任何人都可以告诉我正确的方法来做到这一点?我使用的是Python3

谢谢!

2 个答案:

答案 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!