【コピペOK】PythonからTwitterへ自動投稿(ツイート)する手順

 

★悩み★
・朝昼晩と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へ自動投稿(ツイート)する手順?」で悩んでいるあなたにこの記事が少しでも役に立てれば幸いです。
 

コメント