はじめに
この記事では、Twitter(現X)上で自動投稿を行う簡易的なBotアプリの作成方法についてまとめます。APIの取得からPythonを使った投稿実装まで、最小構成で紹介しています。
以前、Mattermost にメッセージを自動投稿するボットを Python で簡単に作成したことがあり、その経験も今回の参考になりました!
内容に不備などがございましたら、お手数ですが優しくご指摘いただけますと幸いです。
書こうと思ったきっかけ
X(Twitter)で自動でもっと情報発信をしたいと考えたのがきっかけです。調べてみると案外シンプルに実装できたため、備忘録として記事化しました。
こんな感じで投稿できました!(現時点では手動でプログラムを実行していますが、今後は cron などで定期実行できるようにする予定です…!)
事前確認
プランの比較まとめ
プラン名 | 月額 | 投稿上限(ユーザー) | 読み取り上限 | 特徴 |
---|---|---|---|---|
Free | 無料 | 500件/月 | 100件/月 | 書き込み専用(テスト向け) |
Basic | $200/月 | 3,000件/月 | 15,000件/月 | 個人・試作向け、読み書き可能 |
Pro | $5,000/月 | 288,000件/月 | 1,000,000件/月 | ビジネス・商用大規模利用向け |
参考文献
実際にやってみた
APIキーの取得
1. API Keyの取得手順
X Developerポータル(https://developer.twitter.com/
)から以下を取得
-
鍵アイコン(🔑)をクリックして下記の4情報を取得
- API Key
- API Secret
- Access Token
- Access Token Secret
※表示は一度きりなので、必ず安全な場所へ保存してください。
2. アプリの「App permissions」を変更する
🔧 手順:
- X Developer Portal にアクセス
- 左メニューから「Projects & Apps > Your App > Settings」へ進む
- "App permissions"(アプリの権限) を以下に設定:
Read and Write
ここの画面になります!
※デフォルトでは「Read only」になっています
-
「Save」をクリック
-
Access Token と Secret を再生成(再発行)
- 権限変更後は、新しいAccess Tokenが必要です
- 「Keys and Tokens」タブへ行き、「Access Token and Secret」横の Generate をクリック
3. AppleシリコンMacでの仮想環境構築
cd ~/Desktop/macbook\ pro/test
# 仮想環境の作成(arm64対応)
python3 -m venv venv
source venv/bin/activate
# パッケージのインストール
pip install --upgrade pip
pip install tweepy
実際はこんな感じで仮想環境を構築しました!
実際のコード
import tweepy
# 各種トークンをここに入力
bearer_token = "xxx"
api_key = "xxx"
api_secret = "xxx"
access_token = "xxx"
access_token_secret = "xxx"
# クライアント設定(v2)
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
)
# ツイート投稿(v2エンドポイント)
response = client.create_tweet(
text="\U0001F389 新しいQiita記事が公開されました!\n\n「VPCエンドポイントをCloudFormationで一括作成:SSM・SSMMessages・EC2Messages対応テンプレート」 by honda@41期\n\U0001F517 https://qiita.com/free-honda/items/d9464a84211b4f521173\n\n#Qiita #技術ブログ #OrgName"
)
print("ツイート成功:", response.data)
コード解説
1. ライブラリの読み込み
Twitter API に接続するための Python ライブラリ tweepy
を読み込みます。
import tweepy
これは、ツイート投稿や取得などの操作を簡単に行えるようにするものです。
# 各種トークンをここに入力
bearer_token = "xxx"
api_key = "xxx"
api_secret = "xxx"
access_token = "xxx"
access_token_secret = "xxx"
2. API認証情報の定義
X(旧Twitter)APIを利用するには、開発者ポータルで取得した以下の認証情報が必要です。
-
bearer_token
: Twitter API v2 用のトークン(読み取り操作向け)
ここです
-
api_key
/api_secret
: アプリそのものの認証(Consumer Key/Secret) -
access_token
/access_token_secret
: アカウントとしてツイートするための認証情報
これらをコード内に設定することで、API を使って自動で投稿するなどの操作が可能になります。
# クライアント設定(v2)
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
)
3. Tweepyクライアントの初期化
tweepy.Client
を使って、API に接続するためのクライアントを作成します。
このクライアントは Twitter API v2 に対応しており、ツイート投稿や取得などの機能を使えます。
この設定により、指定した認証情報を使って Twitter アカウントに接続できるようになります。
# ツイート投稿(v2エンドポイント)
response = client.create_tweet(
text="🎉 新しいQiita記事が公開されました!\n\n「VPCエンドポイントをCloudFormationで一括作成:SSM・SSMMessages・EC2Messages対応テンプレート」 by honda@41期\n🔗 https://qiita.com/free-honda/items/d9464a84211b4f521173\n\n#Qiita #技術ブログ #OrgName"
)
4. ツイート投稿
create_tweet()
関数を使ってツイートを投稿します。
ここでは、Qiita 記事の紹介文と URL、ハッシュタグ、絵文字を含めたツイート内容が投稿されます。
改行や記号、ハッシュタグ、絵文字もサポートされており、見やすく表現できます。
print("ツイート成功:", response.data)
5. 実行結果の確認
投稿結果として返された情報(ツイート ID など)を print()
関数で表示し、成功を確認します。
(venv) ~/Desktop/macbook pro/test python test.py
ツイート成功: {'id': 'xxx', 'edit_history_tweet_ids': ['xxx'], 'text': '🎉 新しいQiita記事が公開されました!\n\n「VPCエンドポイントをCloudFormationで一括作成:SSM・SSMMessages・EC2Messages対応テンプレート」 by honda@41期\n🔗 https://t.co/YwmZqbYb7E\n\n#Qiita #技術ブログ #OrgName'}
ツイートが成功していれば、response.data
に投稿内容やツイートIDが含まれます...!
まとめ
ここまで読んでいただき、ありがとうございました!
X(Twitter)APIの利用にはプランによる制限がありますが、無料枠でも投稿Botのテスト用途には十分だと思いました!
tweepyライブラリを活用すれば、数行のコードで投稿まで実現できるので、ぜひ活用してみてください...!