この記事では、PythonでTwitter APIを使って特定のワードのツイートを検索してリツイートするbotを作成する方法を紹介します。
これを使えば、ቻンቻンがቺቻቺቻリツイート(@chinmochi_RT)のようなbotを作ることができます。
Twitter APIを利用するためには申請が必要です。まだTwitter APIを使用するための開発者申請をしていない人は以下の記事を参考に申請してみてください。
TwitterAPIを利用するために必要な「Twitter開発者アカウント」(Twitter Developer Account)の取得方法や申請に通過しやすくなる申請文の書き方などを説明します。
記事を見るこのような仕様で作ります。
まずは必要なライブラリのインストールをします。
pip install tweepy
または
py -m pip install tweepy
こちらがソースコードです。コピペしてログイン情報や反応ワードを変えればそのまま使えます。
import tweepy
CK = "ここにコンシューマーキーを入力"
CS = "ここにコンシューマーシークレットを入力"
AK = "ここにアクセストークンを入力"
AS = "ここにアクセスシークレットを入力"
word = "ここにRTするワードを入力"
auth = tweepy.OAuthHandler(CK, CS)
auth.set_access_token(AK, AS)
api = tweepy.API(auth)
print('実行中')
class MyStreamListener(tweepy.StreamListener):
def on_status(self, status):
if 'RT @' not in status.text[0:4]:
if 'http' not in status.text:
api.retweet(id=status.id)
myStreamListener = MyStreamListener()
myStream = tweepy.Stream(auth = api.auth, listener=myStreamListener)
myStream.filter(track=[word], is_async=True)
ここではソースコードの解説をします。
import tweepy
import time
CK = "コンシューマーキーを入力"
CS = "コンシューマーシークレットを入力"
AK = "アクセストークンを入力"
AS = "アクセストークンシークレットを入力"
word = 'ここにRTするワードを入力'
auth = tweepy.OAuthHandler(CK, CS)
auth.set_access_token(AK, AS)
api = tweepy.API(auth)
print('実行中')
この部分ではまずimportのところでtweepy(TwitterAPIをPythonで簡単に扱えるやつ)を適用します。
そして、コンシューマーキーなどの認証情報やリツイートするワードを定義し、コンソールに実行中であることを表示します。
class MyStreamListener(tweepy.StreamListener):
def on_status(self, status):
if 'RT @' not in status.text[0:4]:
if 'http' not in status.text:
api.retweet(id=status.id)
myStreamListener = MyStreamListener()
myStream = tweepy.Stream(auth = api.auth, listener=myStreamListener)
myStream.filter(track=[word], is_async=True)
ここではリアルタイムにツイートを取得し、RTしています。
ユーザーが止めるまでは無限ループするようにしています。
これだけで簡単にリアルタイムでリツイートするbotが作れます