Python-Tweepy的设置

时间:2013-08-19 13:15:01

标签: python tweepy

我是Python的新手,所以这个问题就是要找到正确的方向。我想做的是编写一个应用程序,自动回复发送到我的Twitter句柄的查询。我正在使用Tweepy。我的步骤如下:

  1. 收听任何提及我手柄的推文​​
  2. 收集推文并进行分析
  3. 构建自动回复
  4. 在Twitter上发布回复
  5. 我必须为步骤2和3连接一些Web服务并获取JSON响应。

    我的问题是关于正确的设置。你们认为独立的Tweepy应用程序是否能够在生产级别处理这个问题?或者我应该为此实现一些服务器实现?如果它是第二个,你们可以指点我一些链接,我怎么能这样做?我是Python的新手。

1 个答案:

答案 0 :(得分:1)

使用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帐户才能工作并输入您自己的安全令牌。我目前无法测试写入时间表,因为我的是只读的。