【问题标题】:Tweepy stream.userstream() doesn't receive direct messagesTweepy stream.userstream() 不接收直接消息
【发布时间】:2013-10-22 10:11:14
【问题描述】:

我的最终目标是创建一个 twitter“机器人”,它通过直接消息接收输入,并根据输入更改公开可见的网页。我原本打算用公共消息来做这件事,但很快就很烦人,所以我正在调整我的 Tweepy 流以利用 DM。

截至目前,以下代码有效,并且当脚本运行时,我会收到通知并处理我的测试用户关注的某人发布的所有帖子,但没有显示直接消息。

auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_key, access_secret)
api = tweepy.API(auth)

class CustomStreamListener(tweepy.StreamListener):
    ...
        def on_status(self, status):
            print status
...

sapi = tweepy.streaming.Stream(auth, CustomStreamListener())
sapiuser = sapi.userstream()
假设我有 r/w/dm 权限在此帐户所做的 dev.twitter.com 控制面板上。 (我将“设置”下的“应用程序类型”更改为全部三个并重新创建了一个访问令牌,表明它具有这些权限 - 我需要做其他任何事情吗)我现在将尝试解构 Tweepy 并检查我的 HTTP 标头访问级别,但是任何其他建议将不胜感激。谢谢!

编辑:https://dev.twitter.com/discussions/4088 建议在任何响应中检查 HTML 标头“x-access-level”,以验证我是否拥有 DM 权限,并且确实如此。

【问题讨论】:

    标签: python twitter twitter-oauth tweepy twitter-streaming-api


    【解决方案1】:

    问题是您在StreamListener 中使用了错误的方法。当从流中接收到新推文时,将调用 on_status 方法。相反,您需要创建一个名为on_direct_message 的方法。每当收到新的直接消息时,Tweepy 都会调用该方法。

    【讨论】:

      猜你喜欢
      • 2019-02-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-28
      • 1970-01-01
      • 2014-03-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多