我的最终目标是创建一个推特“机器人”,它通过直接消息接收输入,并根据输入改变一个公开可见的网页。我原本打算用公共消息来做这件事,但很快就很烦人,所以我正在调整我的 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()
https://dev.twitter.com/discussions/8081和后面的链接 (8110, 4088) 使它看起来应该可以工作(内置的 tweepy 代码应该能够正常访问它),假设我在 dev.twitter.com 控制面板上拥有 r/w/dm 权限,该帐户具有此权限。(我将“设置”下的“应用程序类型”更改为全部三个并重新创建了一个访问令牌,表明它具有这些权限 - 我需要做其他任何事情吗)我现在将尝试解构 Tweepy 并检查我的 HTTP 标头访问级别,但是任何其他建议将不胜感激。谢谢!
编辑:https ://dev.twitter.com/discussions/4088建议在任何响应中检查 HTML 标头“x-access-level”,以验证我是否拥有 DM 权限,我确实这样做了。