★悩み★
・朝昼晩とTwitterへ投稿しているけど、なかなか時間を持っていかれるな。
・決まった時間にTwitterへ自動投稿(ツイート)することはできないのかな。
・Pythonを使えば、Twitterへ自動投稿(ツイート)できるのかな。
こういった「悩み」に答えます。
★本記事の内容★
① PythonからTwitterへ自動投稿(ツイート)するための準備をご紹介
② PythonからTwitterへ自動投稿(ツイート)する手順をご紹介
➂ Twitterへの自動投稿(ツイート)に関するよくある質問(FAQ)
本記事を実践したことで、2時間以内で「PythonからTwitter(現X)へ自動投稿(ポスト)」できました。
記事の前半では「PythonからTwitterへ自動投稿(ツイート)するための準備」を解説しつつ、記事の後半では「PythonからTwitterへ自動投稿(ツイート)する手順」を紹介します。
この記事を読み終えることで、「PythonからTwitterへ自動投稿(ツイート)できるアプリケーションやツールを無料で作れる」状態になります。
ちなみに、「RubyからTwitterへ自動投稿(ツイート)する手順」に関しては、以下の記事をご覧ください。
ちなみに、「JavaからTwitterへ自動投稿(ツイート)する手順」に関しては、以下の記事をご覧ください。
PythonからTwitterへ自動投稿(ツイート)するための準備
「PythonからTwitterへ自動投稿(ツイート)するための準備」に関してご紹介します。
★PythonからTwitterへ自動投稿(ツイート)するための準備の流れ★
手順1:Pythonをインストール
手順2:Pythonライブラリをインストール
手順3:Twitter APIのキーとアクセストークンを取得
上記の流れで、「PythonからTwitterへ自動投稿(ツイート)の準備」ができます。
上記の各手順は、以下の日時と環境で動作確認済みです。
動作確認済み日時:2021年5月24日
動作確認済み環境:CentOS Linux release 7.7.1908 (Core)
以降で、上記「PythonからTwitterへ自動投稿(ツイート)するための準備の流れ」の各手順に関してご説明します。
手順1:Pythonをインストール【Twitterの自動投稿に必要】
「手順1:Pythonをインストール」に関してご説明します。
Pythonを使って「Twitterへ自動投稿(ツイート)」を実現するため、Pythonをお手持ちのパソコンにインストールしましょう。
以下の記事を参考にし、お使いのパソコンやサーバーにPythonをインストールしましょう。
>> 【ubuntu向け】pyenvでPythonをインストールする手順【簡単】
>> 【コピペOK】pyenvでPythonをインストールする手順【Linux用】
>> 【最短5分】PyAutoGUIをWindowsにインストールする手順の「手順1:Pythonのインストール」を参照
>> 【環境構築】インストーラーでMacOSにPythonをインストール
既にPythonをインストールされている方は、本手順を省略してください。
以上で、「手順1:Pythonのインストール」は完了です。
手順2:Pythonライブラリをインストール【Twitter投稿に必要】
「手順2:Pythonライブラリをインストール」に関してご説明します。
Pythonを使ってTwitterへ投稿(ツイート)するために、Pythonライブラリ「tweepy」をインストールしましょう。
「端末」または「コマンドプロンプト」を起動し、以下のコマンドを実行してください。
# pip install tweepy
# pip list | grep tweepy
tweepy (x.y.z)
上記のように「tweepy (バージョン名)」が表示された場合、「正常にtweepyがインストールできた」と判断できます。
以上で、「手順2:Pythonライブラリをインストール」は完了です。
手順3:Twitter APIのキーとアクセストークンを取得
「手順3:Twitter APIのキーとアクセストークンを取得」に関してご説明します。
PythonからTwitterへ自動投稿(ツイート)するためには、「Twitter API」の「キー」と「アクセストークン」が必要です。
「Twitter APIのキーとアクセストークンを取得する手順」に関しては、以下の記事をご覧ください。
既に「Twitter API」の「キー」と「アクセストークン」を持っている方は、本手順を省略してください。
以上で、「手順3:Twitter APIのキーとアクセストークンを取得」は完了です。
上記の流れで、「PythonからTwitterへ自動投稿(ツイート)するための準備」ができました。
PythonからTwitterへ自動投稿(ツイート)する手順
「PythonからTwitterへ自動投稿(ツイート)する手順」に関してご紹介します。
★PythonからTwitterへ自動投稿(ツイート)する流れ★
手順1:PythonでTwitterへ投稿(ツイート)するプログラムを作成
手順2:作成した「PythonでTwitterへ投稿するプログラム」の動作確認
手順3:「PythonでTwitterへ投稿するプログラム」を定期実行(自動投稿)
上記の流れで、「PythonからTwitterへ自動投稿(ツイート)」ができます。
上記の各手順は、以下の日時と環境で動作確認済みです。
動作確認済み日時:2021年5月24日
動作確認済み環境:CentOS Linux release 7.7.1908 (Core)
以降で、上記「PythonからTwitterへ自動投稿(ツイート)する流れ」の各手順に関してご説明します。
手順1:PythonでTwitterへ投稿(ツイート)するプログラムを作成
「手順1:PythonでTwitterへ投稿(ツイート)するプログラムを作成」に関してご説明します。
PythonでTwitterへ投稿(ツイート)するプログラムを作成しましょう。
Pythonで「Twitterへ投稿(ツイート)する」プログラムは、以下となります。プログラム中の「適宜変更」と書いてある部分は、自分用に書き換えてください。
# Pythonライブラリをインポート
import tweepy
# Twitter APIのキーを設定(適宜変更)
consumer_key ="xxxx"
consumer_secret ="yyyy"
# Twitter APIのアクセストークンを設定(適宜変更)
access_token="aaaa"
access_token_secret ="bbbb"
# Twitterオブジェクトの生成
client = tweepy.Client(
consumer_key = consumer_key,
consumer_secret = consumer_secret,
access_token = access_token,
access_token_secret = access_token_secret
)
# Twitterへ投稿(ツイート)
client.create_tweet("pythonからツイートしてみました。")
上記のプログラムを「python-twitter-tweet.py」というファイル名で保存しましょう。
以上で、「手順1:PythonでTwitterへ投稿(ツイート)するプログラムを作成」は完了です。
手順2:作成した「PythonでTwitterへ投稿するプログラム」の動作確認
「手順2:作成した「PythonでTwitterへ投稿するプログラム」の動作確認」に関してご説明します。
作成した「PythonでTwitterへ投稿(ツイート)するプログラム」を実行しましょう。
以下のコマンドを実行し、手順1で作成した「PythonでTwitterへ投稿(ツイート)するプログラム」の動作を確認しましょう。
# python python-twitter-tweet.py
pythonからツイートしてみました。
#
上記のように「Pythonからツイートしてみました。」と表示された場合、「PythonからTwitterへ投稿(ツイート)できた」と判断できます。
以上で、「手順2:作成した「PythonでTwitterへ投稿するプログラム」の動作確認」は完了です。
手順3:「PythonでTwitterへ投稿するプログラム」を定期実行(自動投稿)
「手順3:「PythonでTwitterへ投稿するプログラム」を定期実行(自動投稿)」に関してご説明します。
作成した「PythonでTwitterへ投稿(ツイート)するプログラム」を早朝に定期実行(自動投稿)するために、cronを使いましょう。
以下の記事「ステップ3:Dynamic DO!.jpのDNSを定期的に更新」参照し、cronを利用し「定期的にPythonでTwitterへ自動投稿(ツイート)」を実現してください。
以上で、「手順3:「PythonでTwitterへ投稿するプログラム」を定期実行(自動投稿)」は完了です。
上記の手順で、PythonからTwitterへ自動投稿(ツイート)ができました。
ちなみに、Pythonで「Twitterの投稿を取得したい」や「Twitterを検索したい」などに興味がある方には、以下の参考書をオススメします。
Twitterへの自動投稿(ツイート)に関するよくある質問(FAQ)
PythonからTwitterへ自動投稿(ツイート)する際に、様々な疑問があるかと思います。ここでは、以下の「よくある質問」や「疑問」に対して解説します。
【よくある質問や疑問の一覧】
・limited v1.1 endpointsというエラー発生時の解決方法
・module ‘tweepy’ has no attribute ‘Client’というエラーが発生時の解決方法
limited v1.1 endpointsというエラー発生時の解決方法
2023年3月からTwitter APIが有料化されました。それに伴い以下のプログラムを実行した場合、エラーが発生するようになりました。
# Pythonライブラリをインポート
import tweepy
# Twitter APIのキーを設定(適宜変更)
consumer_key ="xxxx"
consumer_secret ="yyyy"
# Twitter APIのアクセストークンを設定(適宜変更)
access_token="aaaa"
access_token_secret ="bbbb"
# Twitterオブジェクトの生成
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
api = tweepy.API(auth)
# Twitterへ投稿(ツイート)
api.update_status("pythonからツイートしてみました。")
上記プログラムを実行した場合のエラー内容は以下となります。
Traceback (most recent call last):
File "main.py", line 100, in <module>
twitter_obj.tweet(tweet_text)
File "/root/tmp/qiita/twitter.py", line 13, in tweet
api.update_status(text)
File "/root/.pyenv/versions/3.6.2/lib/python3.6/site-packages/tweepy/api.py", line 218, in update_status
)(*args, **kwargs)
File "/root/.pyenv/versions/3.6.2/lib/python3.6/site-packages/tweepy/binder.py", line 253, in _call
return method.execute()
File "/root/.pyenv/versions/3.6.2/lib/python3.6/site-packages/tweepy/binder.py", line 234, in execute
raise TweepError(error_msg, resp, api_code=api_error_code)
tweepy.error.TweepError: [{'message': 'You currently have access to a subset of Twitter API v2 endpoints and limited v1.1 endpoints (e.g. media post, oauth) only. If you need access to this endpoint, you may need a different access level. You can learn more here: https://developer.twitter.com/en/portal/product', 'code': 453}]
本事象の詳しい発生原因と解決方法を以下に掲載します。
【発生原因と解決方法】
エラーの意味:
現時点で使用禁止されているTwitter API V1.1を使ったため
エラー箇所:
update_status関数を実行する際にエラーが発生
原因:
Twitter API V1.1を使った関数を使ったため
解決方法:
update_status関数ではなくTwitter API V2.0のcreate_tweet関数を使う
module ‘tweepy’ has no attribute ‘Client’というエラーが発生時の解決方法
本記事で掲載したプログラムを実行した場合、以下のエラーが発生することがあります。
Traceback (most recent call last):
File "main.py", line 100, in <module>
twitter_obj.tweet(tweet_text)
File "/root/tmp/qiita/twitter.py", line 15, in tweet
client = tweepy.Client(
AttributeError: module 'tweepy' has no attribute 'Client'
本事象の詳しい発生原因と解決方法を以下に掲載します。
【発生原因と解決方法】
エラーの意味:
tweepyライブラリ内にClientという関数が存在しないため
エラー箇所:
tweepy.Client関数を実行する際にエラーが発生
原因:
Twitter API V1.1を使った関数を使ったため
解決方法:
tweepyのバージョンをアップグレードする
以下のコマンドを順に実行することで、tweepyライブラリのバージョンをアップグレードできます。
# pip install -U tweepy
# pip list | grep tweepy
DEPRECATION: The default format will switch to columns in the future. You can use --format=(legacy|columns) (or define a format=(legacy|columns) in your pip.conf under the [list] section) to disable this warning.
tweepy (4.6.0)
You are using pip version 9.0.1, however version 23.2.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
【まとめ】PythonからTwitterへ自動投稿(ツイート)する手順
今回の記事を通して、「PythonからTwitterへ自動投稿(ツイート)する手順」をご紹介することで、以下の悩みを解消しました。
★悩み★
・朝昼晩とTwitterへ投稿しているけど、なかなか時間を持っていかれるな。
・決まった時間にTwitterへ自動投稿(ツイート)することはできないのかな。
・Pythonを使えば、Twitterへ自動投稿(ツイート)できるのかな。
「無料でPythonからTwitterへ自動投稿(ツイート)する手順は?」で悩んでいるあなたにこの記事が少しでも役に立てれば幸いです。
コメント