こんにちは、DXCEL WAVEの運営者(@dxcelwave)です!
「PythonでTwitterの自動ツイート(投稿)はどうやって実行するの?」「定期的に自動ツイートできるツールを作成したい」本記事ではこのような疑問・要望にお答えします。
Twitterの自動投稿を実現するためのライブラリ・tweepyとは
tweepyはTwitterAPIを用いてTwitterを簡易操作するためのPythonライブラリです。tweepyを使いこなすことで、オーダーメイドのTwitter自動運用アプリが作成できるようになります。
tweepyはTwitter APIの利用を前提としています。APIキーやシークレットキーの取得が未済の方はまずこちらの記事からご覧ください。API利用までの手順を解説しています。
【Twitter】APIキー利用申請から発行までの手順解説|ツイッター運用自動化アプリ作成に向けた環境構築
「Twitter運用自動化アプリ(Bot)を作って業務効率化したいけど、最初に何をすればいいの?」「Twitter APIってどうやって申請して使えるようになるの?」本記事ではこのような疑問にお答えします。また、後半ではTwitter APIを活用した運用自動化アプリの開発方法についても触れます。
tweepyとTwitter API利用によって実現できること
tweepyとAPIを用いると上図のようなことが全てできるようになります。本記事では機能を厳選し「Pythonからツイートする方法」「定期実行する方法」を詳しく解説していきます。
Twitter運用の「ツール開発はやはり難易度が高い」
このように感じる方向けに「おすすめX運用ツール」も紹介しております。ぜひご覧ください。
【RPA】面倒なX運用を自動化!おすすめツール4選|Xマーケティング業務効率化支援
「面倒なX運用を自動化したい」「自動化できるおすすめX運用ツールとは?」「簡単に自作開発もできる?」本記事ではこのような要望・疑問にお答えします。
【実践】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です。詳しくは下記の記事でも取り扱っていますため、合わせてご覧ください。
【Python×Twitter】検索ツイートのデータ取得・分析|APIとtweepy活用による自動運用アプリ開発支援
「PythonでTwitterのデータ収集をどうやって実行するの?」「自動で検索結果にマッチするツイートを取得して分析できるようになりたい」本記事ではこのような疑問・要望にお答えします。
【自動化】ツイートを定期実行する
続いて、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ライブラリの具体的な使用方法については別途こちらの記事をご覧下さい。
【Python】Scheduleモジュールを用いたイベント定期実行|指定時間動作のスケジュール関数作成例と使い方解説
Pythonスクリプトを一度きりではなく、定期的に実行できるようにしたい。加えて、定期的な実行条件は細かく定義したい。本記事ではこのような要望に回答。具体的に「スケジュール(Schedule)モジュールを活用した定期実行処理の組み立て方法」について詳しく解説。
最後に
お問い合わせフォーム
上記課題に向けてご気軽にご相談下さい。
お問い合わせはこちら