Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Tweepy stream.userstream()不';我不能直接收到信息_Python_Twitter_Twitter Oauth_Tweepy_Twitter Streaming Api - Fatal编程技术网

Python Tweepy stream.userstream()不';我不能直接收到信息

Python Tweepy stream.userstream()不';我不能直接收到信息,python,twitter,twitter-oauth,tweepy,twitter-streaming-api,Python,Twitter,Twitter Oauth,Tweepy,Twitter Streaming Api,我的最终目标是创建一个twitter“机器人”,它通过直接消息接收输入,并根据输入改变公共可见的网页。我原本打算用公共消息来做这件事,但很快就变得烦人起来,所以我正在调整我的Tweepy流以利用DMs 到目前为止,下面的代码仍然有效,当脚本运行时,我会收到通知并处理测试用户正在关注的人所发的所有帖子,但不会显示任何直接消息 auth = tweepy.OAuthHandler(consumer_key, consumer_secret) auth.set_access_token(access_

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

到目前为止,下面的代码仍然有效,当脚本运行时,我会收到通知并处理测试用户正在关注的人所发的所有帖子,但不会显示任何直接消息

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()
接下来的链接(81104088)使它看起来应该可以工作(内置tweepy代码应该可以很好地访问它),假设我在dev.twitter.com控制面板上拥有r/w/dm权限,这个帐户就是这样做的。(我将“设置”下的“应用程序类型”更改为所有三个,并重新创建了一个表示它拥有这些权限的访问令牌-我还需要做其他事情吗)我现在将尝试解构Tweepy并检查我的HTTP头访问级别,但任何其他建议都将非常感谢。谢谢


编辑:建议在任何响应中检查HTML标题“x-access-level”,以验证我是否具有DM权限,我确实具有此权限。

问题在于您在
StreamListener中使用了错误的方法。当从流接收到新的tweet时,将调用
on_status
方法。相反,您需要在\u direct\u message
上创建一个名为
的方法。Tweepy将在收到新的直接消息时调用该方法