TwitterAPIとは?
簡単に言うと、TwitterAPIに登録すると、プログラムを介した自動いいねや自動リツイート、ツイートの投稿や、取得などのアクセスを許可しますよ。という感じである。多分・・・
TwitterAPIに登録しよう
では早速プログラムを書く上で必要になってくるアクセスキーなどを取得するために、TwitterAPIに登録しましょう。
登録の仕方はこちらの記事を参考にしてください。
実際にコードを書いていく前の準備
APIの認証が済んだらtweepy
のインストールをして下さい。
$ pip3 install tweepy
インストールが済んだら実際にコードを書いていきましょう。
自動いいね
まずは、取得したキーの設定から
API key
API secret key
Access token
Access token secret
この4つのキーを、自動いいねのコードとは別ファイルに記述します。
ここでは、キーの記述用ファイルをconfig.py
とします。
CONFIG = {
"CONSUMER_KEY":"自分の API key を記入",
"CONSUMER_SECRET":"自分の API secret key を記入",
"ACCESS_TOKEN":"自分の Access token を記入",
"ACCESS_SECRET":"自分の Access token secret を記入",
}
キーの設定が終わったら、自動いいねのコードを書くファイルに、キーの呼び出しをする記述を書いていきます。
import tweepy
from config import CONFIG
CONSUMER_KEY = CONFIG["CONSUMER_KEY"]
CONSUMER_SECRET = CONFIG["CONSUMER_SECRET"]
ACCESS_TOKEN = CONFIG["ACCESS_TOKEN"]
ACCESS_SECRET = CONFIG["ACCESS_SECRET"]
先ほどインストールした`tweepy`とキーの設定を行なったファイル`config.py`から`CONFIG`を使える様にします。
そして、それぞれの変数に代入しています。
これでAPIを利用したコードを書く準備は整ったので、上記のコードに下記のコードを追記してください。
auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
auth.set_access_token(ACCESS_TOKEN, ACCESS_SECRET)
api = tweepy.API(auth)
# ↑↑↑ インスタンス作成 ↑↑↑
search_results = api.search(q="映画", count=100)
# ↑↑↑ ここでツイートの検索をしています。 ↑↑↑
for result in search_results:
tweet_id = result.id
try:
api.create_favorite(tweet_id)
except Exception as e:
print(e)
# ↑↑↑ ここでいいねしています ↑↑↑
上記の流れについて解説します。
まず一番上のコードで、設定したキーを用いてAPIのインスタンスを作成しています。
TwitterAPIを用いる時に必要だという認識で大丈夫かと思います。
その次に、search
メソッドを用いて、ツイートの検索をしています。
引数のq =
に"映画"
というキーワードを設定して、count = 100
で100件という条件を指定。
つまり、映画というキーワードが含まれるツイートを100件取得していることになります。
その結果をsearch_results
に代入した後にfor文を用いて、取得したツイート1件1件に
api.create_favorite(tweet_id)
でいいねしています。
tweepy
には様々なメソッドが用意されているので、他のメソッドが知りたい方はこちらを参考にしてください。
try:
及びexcept Exception as e:
の例外処理についての説明は割愛させていただきますが
詳しく知りたい方はこちらの記事を参考にしてください。
では、プログラムを実行してみましょう。
$ python twitter.py
実行すると、自動でいいねされます。
では、検索したツイートをいいねだけでなく、リツイートとそのツイート主をフォローする様にしてみましょう。
確認がしやすい様に、先ほどとは別のキーワードで検索してみます。
search_results = api.search(q="エンジニア", count=100)
for result in search_results:
tweet_id = result.id
user_id = result.user._json['id'] # ←追記
try:
api.create_favorite(tweet_id)
api.retweet(tweet_id) # ←追記
api.create_friendship(user_id) # ←追記
except Exception as e:
print(e)
上記のコードについて少し解説します。
.retweet()
メソッドでリツイートができます。引数はツイートのidになるのでいいねの時と同様にtweet_id
を引数に渡します。
.create_friendship()
メソッドを使ってフォローをするわけですが、引数にはuserのid
が必要です。
なので、user_id = result.user._json['id']
でuserのidを取得しています。
これでプログラムを実行すると、キーワード検索で取得したツイートに、いいねやリツイートをして、ツイート主のフォローが自動でできているかと思います。
この様に、TwitterAPIを用いると、プログラムを介してのアクセスが簡単にできます。
他にもデータ分析などの使い道があるので興味がある方は調べてみてください。
完成したコード
import tweepy
from config import CONFIG
CONSUMER_KEY = CONFIG["CONSUMER_KEY"]
CONSUMER_SECRET = CONFIG["CONSUMER_SECRET"]
ACCESS_TOKEN = CONFIG["ACCESS_TOKEN"]
ACCESS_SECRET = CONFIG["ACCESS_SECRET"]
auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
auth.set_access_token(ACCESS_TOKEN, ACCESS_SECRET)
api = tweepy.API(auth)
search_results = api.search(q="エンジニア", count=100)
for result in search_results:
tweet_id = result.id
user_id = result.user._json['id'] # ←追記
try:
api.create_favorite(tweet_id)
api.retweet(tweet_id) # ←追記
api.create_friendship(user_id) # ←追記
except Exception as e:
print(e)
おわりに
検索キーワードを複数指定したい場合には、リストにキーワードを複数入れるやり方もあります。
q_list = ["映画","#アベンジャーズ","#サノス"]
count = 50
for q in q_list:
search_results = api.search(q=q, count=count)
for result in search_results:
tweet_id = status.id
user_id = result.user._json['id']
try:
api.create_favorite(tweet_id)
api.retweet(tweet_id)
api.create_friendship(user_id)
except Exception as e:
print(e)
もし、複数キーワードを設定したいという方がいたらこのやり方でやってみてください。