Twitter botの作り方
特定の単語が含まれるtweetsをReTweetするbotを作る。
Streaming API#filterは(現状)日本語が使えないので、http://dev.twitter.com/doc/get/searchを用い、特定の単語を検索し、tweetsのリストを得る。
since_id = 0 while(True): search_url = "http://search.twitter.com/search.json" temp.close() params = urllib.urlencode({ 'q': u'特定の単語'.encode('utf-8'), 'since_id': since_id }) req = urllib.urlopen(search_url + "?%s" % params) elems = simplejson.loads(req.read()) for elem in elems['results']: # print elem['id'], elem['text'] retweet_tweet(elem['id']) time.sleep(1) since_id = elems['max_id'] time.sleep(5 * 60) # 5分毎に動かす
2回目の検索からは前回の結果に含まれる最新tweet以降のtweetsを対象にする必要があるので、since_idオプションを用いる。
ReTweetはhttp://dev.twitter.com/doc/post/statuses/retweet/:idに従って
def retweet_tweet(tweet_id): retweet_url = "http://api.twitter.com/1/statuses/retweet/%s.json" % tweet_id # OAuth認証後POST
で出来る。
「極論」という単語がどう使われているか見たかったので、極論bot (@kyokuron_bot) | Twitterを設置した。