我是Python新手,所以这个问题是为了找到一个正确的方向。我想做的是编写一个应用程序,自动回复发送到我的 Twitter 句柄的查询。我为此使用 Tweepy。我的步骤如下:
- 收听任何提及我的账号的推文
- 收集推文并进行分析
- 建立自动回复
- 在 Twitter 上发表回复
我必须为步骤 2 和 3 连接一些 Web 服务并获取 JSON 响应。
我的问题是关于正确的设置。你们认为独立的 Tweepy 应用程序能够在生产级别处理这个问题吗?或者我应该为此寻求一些服务器实现?如果是第二个,你们能给我指出一些链接,我该怎么做吗?我对 Python 还很陌生。
最佳答案
使用 tweepy 流式传输我发现的一个示例 here您可以编辑过滤器来搜索“@yourhandle”。
您可以通过添加以下内容来访问发推文的人:
class CustomStreamListener(tweepy.StreamListener):
def on_status(self, status):
print status.text
print status.user.screen_name #<----------------THIS LINE
将显示谁给您发了推文。接下来您可以尝试使用以下方法更新状态:
api.update_status("my update", in_reply_to_status_id = tweetid)
可以使用以下方式获取推文 ID:
status.id
代码应如下所示:
import tweepy
consumer_key = "xxx"
consumer_secret = "xxx"
access_key = "xxx"
access_secret = "xxx"
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.text
print status.user.screen_name
api.update_status("Insert Auto Reply Text Here", in_reply_to_status_id = status.id)
def on_error(self, status_code):
print >> sys.stderr, 'Encountered error with status code:', status_code
return True # Don't kill the stream
def on_timeout(self):
print >> sys.stderr, 'Timeout...'
return True # Don't kill the stream
sapi = tweepy.streaming.Stream(auth, CustomStreamListener())
sapi.filter(track=['@rishi'])
您需要创建一个 dev twitter 帐户才能正常工作并输入您自己的安全 token 。我目前无法测试对时间线的写入,因为我的时间线是只读的。
关于python - Python-Tweepy 的设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18314749/