【Python】Twitterにメッセージをツイートする

機能

TwitterにメッセージをツイートするPythonプログラムです。

コマンドラインで指定したメッセージをTwitterにツイートします。

例えば、以下のコマンドを実行すると

python tweet.py テスト送信です。

以下のメッセージがTwitterに送られます。

サンプル動画

youtu.be

プログラム

#! python3
# 機能
#  Twitterにメッセージをツイートする
# 使い方
#  import tweet_bot
#  tweet_bot.tweet("メッセージ")

import os
import json
from twitter import Twitter, OAuth

# 認証情報の取得
credential_path = os.path.join(os.path.dirname(__file__), "credential.json")
with open(credential_path, "r", encoding="utf-8") as file:
    credential = json.load(file)

api_key = credential["api_key"]
api_key_secret = credential["api_key_secret"]
access_token = credential["access_token"]
access_token_secret = credential["access_token_secret"]

# ツイートする
def tweet(message):
    t = Twitter(auth=OAuth(access_token, access_token_secret, api_key, api_key_secret))
    t.statuses.update(status=message)
#! python3
# 機能
#  Twitterにメッセージをツイートする
# 使い方
#  1.Pythonを実行する
# 実行コマンド
#  python tweet.py メッセージ

import sys
import tweet_bot

if len(sys.argv) < 2:
    sys.exit("使い方:python tweet.py メッセージ")

tweet_bot.tweet(" ".join(sys.argv[1:]))
{
    "api_key": "発行されたAPI Key",
    "api_key_secret": "発行されたAPI Key Secret",
    "access_token": "発行されたAccess Token",
    "access_token_secret": "発行されたAccess Token Secret"
}

他のプログラムでも利用したいため、ツイート機能をモジュール化(tweet_bot.py)しています。

また、認証情報をネットに晒すリスクを減らすため、ファイルから認証情報を取得するようにしています。

使い方

  1. Pythonを実行する

実行コマンド

python tweet.py メッセージ

twitterをインストールしていない場合は以下のコマンドを実行して下さい。

pip install twitter

認証情報の取得方法は以下のサイトを参考にして下さい。

Python3でTwitterAPIを使い方をどのサイトにも負けないくらい丁寧に解説してみた Twitter Developerの開発者申請(例文あり)とAPIキー取得方法まとめ【2019年版】

実行時に「Read-only application cannot POST」というエラーになる場合があります。

その場合は以下を参考にアプリケーションの権限を変更して下さい。

【TwitterAPI】エラー「Read-only application cannot POST.」の対処法 – ysklog

参考文献

pypi.org

qiita.com

cre8cre8.com

digitalnavi.net

ysklog.net