【Python×Twitter】自動ツイート(投稿)を定期実行する方法|APIとtweepyを用いたbot開発支援

当ページには広告が含まれています。

こんにちは、DXCEL WAVEの運営者(@dxcelwave)です!

サマリー

PythonでTwitterの自動ツイート(投稿)はどうやって実行するの?」「定期的に自動ツイートできるツールを作成したい」本記事ではこのような疑問・要望にお答えします。

目次

Twitterの自動投稿を実現するためのライブラリ・tweepyとは

tweepyはTwitterAPIを用いてTwitterを簡易操作するためのPythonライブラリです。tweepyを使いこなすことで、オーダーメイドのTwitter自動運用アプリが作成できるようになります。

tweepyはTwitter APIの利用を前提としています。APIキーやシークレットキーの取得が未済の方はまずこちらの記事からご覧ください。API利用までの手順を解説しています。

tweepyとTwitter API利用によって実現できること

tweepyとAPIを用いると上図のようなことが全てできるようになります。本記事では機能を厳選し「Pythonからツイートする方法」「定期実行する方法」を詳しく解説していきます。

【実践】Pythonでツイート(投稿)を自動化するbotを作成する

まず初めに今回使用するPythonライブラリとして「tweepy」、出力結果の整形する「pprint」、定期実行する「schedule」があります。事前にインストールしておきましょう。

tweepy

pip install tweepy

pprint

pip install pprintpp

schedule

pip install schedule

【事前準備】クライアント関数作成

tweepyライブラリとAPIを呼び出すためのプログラムを下記のように記述しましょう。今回API情報が踏襲された関数として、ClientInfo()関数を用意しています。

import tweepy
from pprint import pprint
import schedule
from time import sleep

# API情報を記入
BEARER_TOKEN        = "BEARER TOKEN"
API_KEY             = "API キー"
API_SECRET          = "API シークレット"
ACCESS_TOKEN        = "アクセストークン"
ACCESS_TOKEN_SECRET = "アクセストークンシークレット"


# クライアント関数を作成
def ClientInfo():
    client = tweepy.Client(bearer_token    = BEARER_TOKEN,
                           consumer_key    = API_KEY,
                           consumer_secret = API_SECRET,
                           access_token    = ACCESS_TOKEN,
                           access_token_secret = ACCESS_TOKEN_SECRET,
                          )
    
    return client

【アカウント操作】ツイートする

Pythonからツイートするためのtweepyのメソッドとして、create_tweet()を利用するのが特徴であり、ツイートしたいメッセージ(message)を指定し、下記のように記載します。

# ★メッセージを指定
message = "Hello World"

# 関数
def CreateTweet(message):
    tweet = ClientInfo().create_tweet(text=message)
    return tweet

# 関数実行・結果出力
pprint(CreateTweet(message))

【アカウント操作】ツイートを削除する

Pythonから既に存在するツイートを削除するためのtweepyのメソッドとして、delete_tweet()を利用するのが特徴的です。この時、対象ツイートのツイードID(tweet_id)を指定し、下記のように記載します。

# ツイートIDを指定
tweet_id = 'ツイートIDを入力'

def DeleteTweet(tweet_id):
    delete_tweet = ClientInfo().delete_tweet(id=tweet_id)
    return delete_tweet

pprint(DeleteTweet(tweet_id))

ツイートID(tweet_id)とは対象のツイートを一意に判断するためのIDです。詳しくは下記の記事でも取り扱っていますため、合わせてご覧ください。

【自動化】ツイートを定期実行する

続いて、scheduleライブラリを用いて定期的にツイートする方法をご紹介します。例として2日おきにツイートするプログラムを記載します。

# メッセージを指定
message = "Hello World"

#01 定期実行するツイート関数を準備
def CreateTweet(message):
    tweet = ClientInfo().create_tweet(text=message)
    return tweet
    
#02 スケジュール登録(2日おきにツイート)
schedule.every(2).days.do(CreateTweet,message=message)

#03 イベント実行
while True:
    schedule.run_pending()
    sleep(1)

今回は2日おきとしましたが、scheduleライブラリの定期実行の設定も柔軟に変更することができます。scheduleライブラリの具体的な使用方法については別途こちらの記事をご覧下さい。

最後に

この記事が気に入ったら
フォローしてね!

目次