【问题标题】:Tweepy - Reply only to Tweet authorTweepy - 仅回复推文作者
【发布时间】:2021-07-25 09:06:03
【问题描述】:

我使用 Tweepy 作为 Twitter 上的机器人回复某些推文。我希望回复只发给推文的作者,而不是发给推文中可能提到的任何其他用户。

目前我用这个来回复:

reply_status = api.update_status(status = 'tweet content', in_reply_to_status_id = tweet.id, auto_populate_reply_metadata=True)

此电话回复原始推文中提到的所有用户。我注意到update_status 函数中有一个exclude_reply_user_ids= 选项。但是,这需要一个要排除的用户 ID 列表。

  1. 如何获取推文中提及的用户 ID 列表?
  2. 有没有更简单的方式只回复作者?

我想避免在推文开头写用户名,如果我不使用auto_populate_reply_metadata=True,我需要这样做(请参阅this)。

【问题讨论】:

    标签: python api twitter bots tweepy


    【解决方案1】:

    如何获取推文中提及的用户 ID 列表?

    您可以使用 Status/Tweet objectentities 属性,这是一个带有user_mentions 属性的Entities object。这将为您提供User mention objects 的数组,您可以使用每个idid_str 字段。

    有没有更简单的方式只回复作者?

    我想避免在推文的开头写用户名,如果我不使用auto_populate_reply_metadata=True,我需要这样做

    是的,通过在推文开头手动添加提及。
    您可以通过检索推文作者的屏幕名称以编程方式执行此操作,例如tweet.user.screen_name.

    否则,如果您使用auto_populate_reply_metadata,排除提及的唯一方法是使用exclude_reply_user_ids

    【讨论】:

    • 谢谢。 user_mentions 属性似乎只列出了在推文正文中明确提到的用户。我正在寻找推文中所有用户的列表(包括作者和任何以前的回复者)。
    • 它也应该包括被回复的用户,就像我说的,如果你使用auto_populate_reply_metadata,排除提及的唯一方法是使用exclude_reply_user_ids
    • user_mentions 仅包括推文正文中提到的用户(请参阅here)。
    猜你喜欢
    • 1970-01-01
    • 2016-09-20
    • 2012-03-08
    • 2016-11-04
    • 2016-10-20
    • 2020-09-02
    • 1970-01-01
    • 2015-01-21
    • 2021-06-24
    相关资源
    最近更新 更多