![見出し画像](https://assets.st-note.com/production/uploads/images/124934201/rectangle_large_type_2_1e50087543185d2da2a4c79d2709fbd7.jpeg?width=1200)
2023年12月時点、ローカルのWindows環境でPythonからTwitter(X)に画像ファイル付きでツイート(ポスト)する備忘録
1.Pythonの実行環境をインストールする
下記からDownloadして、インストールする
2.ライブラリをインストールする
以下を1行ずつ、コマンドプロンプト上で実行する
(※batファイルにして実行しても良い)
@echo off
rem スクリプトを置く場所(ディレクトリ)に移動
cd C:\Users\test
rem virtualenvのインストール
pip install virtualenv
rem pipのアップグレード
python -m pip install --upgrade pip
rem 仮想環境の作成
python -m venv venv
rem Twitter(X)の投稿に必要なパッケージ(ライブラリ)をインストール
pip install tweepy
pip install schedule
pause
3.Twitter Developers にて、API作成に必要なKeyを作成する(※無料・無課金でOK)
https://developer.twitter.com/
https://developer.twitter.com/en/portal/projects-and-apps
必要となるKeyは以下の4つ
・API Key
・API Key Secret
・Access Token
・Access Token Secret
4.Pythonプログラムコード
以下のコードをコピペして twit_img.py としてファイル保存する
※「っっっ」の部分は上記で取得したもの
import tweepy
# Twitter API required keychain 通信用鍵束
API_KEY='っっっ'
API_SECRET='っっっ'
ACCESS_TOKEN='っっっ'
ACCESS_TOKEN_SECRET='っっっ'
# Twitter API credentials
consumer_key = API_KEY
consumer_secret = API_SECRET
access_token = ACCESS_TOKEN
access_token_secret = ACCESS_TOKEN_SECRET
# Twitter API v1 認証
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
api = tweepy.API(auth)
# Twitter API v2 認証
client = tweepy.Client(
consumer_key=consumer_key,
consumer_secret=consumer_secret,
access_token=access_token,
access_token_secret=access_token_secret)
# 画像とメッセージ
image_path = './001.jpg' #画像ファイル相対パス ※同じ場所に置く
message = "ローカルWindows環境 Python からの 画像投稿てすと 001"
print(message)
media = api.media_upload(filename=image_path)
client.create_tweet(text=message, media_ids=[media.media_id])
5.実行
コマンドプロンプトで、作ったプログラムを実行
※ちなみに同じ内容のメッセージを2回投稿しようとするとエラーになる
py twit_img.py
6.実際に投稿されているか確認
![](https://assets.st-note.com/img/1702905259656-zyj48BNHxr.jpg)
以上
※今回はWindwos環境でやりましたが、LinuxやMacOSの環境でも同様の方法で投稿可能と思います。
※現時点では、無料登録の場合、APIの使用は月1500くらいの制限があるようです。
・Tweepy の Document
https://docs.tweepy.org/en/stable/index.html
・API の Document
https://developer.twitter.com/en/docs
・テキストのみをツィート(投稿)する場合
この記事が気に入ったらサポートをしてみませんか?