【Python】Twitterを操作する④ -いいね、リツイート

これまで、Pythonからツイートする方法やツイートを検索する方法を紹介してきました。

今回はPythonからツイートをいいねやリツイートする方法を紹介します。

TwitterのAPIを利用するには、開発者として登録する必要があります。まだ登録していない方は、以下記事を参考にDeveloper Portalに登録してください。

https://www.learning-nao.com/?p=1948

使用するライブラリ

今回はtweepyを使用します。インストール方法は以下の通りです。

pipの場合

pip install tweepy

Anacondaの場合はconda-forgeから提供されています。

conda install -c conda-forge tweepy

Pythonで実装

APIにアクセス

まずはDeveloper Portalから取得したKey情報等を利用して、API認証を済ませます。

import tweepy

API_Key     = "Your API key"
API_Sec     = "Your API Key Secret"
Token       = "Your Access Token"
Token_Sec   = "Your Access Token Secret"

# Twitterオブジェクトの生成
auth = tweepy.OAuthHandler(API_Key, API_Sec)
auth.set_access_token(Token, Token_Sec)
api = tweepy.API(auth)

各自取得したAPI KeyとAccess Token(およびパスワード)を入力してください。

いいね

まずはツイートをいいねする方法です。

処理の流れとしては、対象ツイートの検索→いいねの実行です。

以下にコードを示します。

Account = "learningnao"
tweets = api.user_timeline(id=Account, count=5)

for tweet in tweets:
    try:
        api.create_favorite(tweet.id) #いいね
    except Exception as e:
        print(e)

api.user_timeline()で対象ツイートを取得します。今回は@learningnaoの最新ツイート5件を取得しています。

for文内の api.create_favorite()でいいねを実行します。引数には各ツイートのIDを渡します。なお、既にいいねが押されている場合はエラーになってしまうので、try~catchで囲っています。

なお、自動でいいねを押しまくると垢BANされる危険が高まるので、注意してください。片っ端からツイートをいいねするなんてことはやめておきましょう。

リツイート

次はリツイートです。いいねと同じように、対象ツイートを検索してからリツイートという流れです。

Account = "learningnao"
tweets = api.user_timeline(id=Account, count=1)

for tweet in tweets:
    try:
        api.retweet(tweet.id) #リツイートする
    except Exception as e:
        print(e)

いいねのときとの違いはtry~catch文の中だけです。リツイートするときは api.retweet()を呼びます。tweet.idでツイートを指定してリツイートします。

コード全文

ここまでのコードをまとめたものが以下です。

import tweepy

API_Key     = "Your API key"
API_Sec     = "Your API Key Secret"
Token       = "Your Access Token"
Token_Sec   = "Your Access Token Secret"

# Twitterオブジェクトの生成
auth = tweepy.OAuthHandler(API_Key, API_Sec)
auth.set_access_token(Token, Token_Sec)
api = tweepy.API(auth)

Account = "learningnao"
tweets = api.user_timeline(id=Account, count=1)


for tweet in tweets:
    try:
        api.create_favorite(tweet.id) #いいねする
        api.retweet(tweet.id) #リツイートする
    except Exception as e:
        print(e)

まとめ

PythonからTwitter APIを使っていいねやリツイートをする方法を紹介しました。自動化することはできますが、やりすぎると垢BANくらってしまうので、適度に使うようにしてください。

ではでは👋