YU2TA7KA's BLOG

派生開発、組み込み開発周りのこと。

Twythonで複数画像データを投稿する方法

はじめに

Twythonで複数画像データ(最大4枚*1)を投稿する方法を紹介します。

前提条件

Twythonでテキストのみのツイートができる環境があること。

画像投稿の流れ(2枚投稿の場合)

画像ファイルのオープン

#画像データをバイナリ形式で読み込む
photo=open('1枚目のファイルパス','rb')
capture=open('2枚目のファイルパス"','rb')

画像データのアップロード

#画像をTwitterにアップロードする
#json形式で投稿した画像のIDなどが返ってくる
photo_upl_inf = twitter.upload_media(media=photo)
capture_upl_inf = twitter.upload_media(media=capture)

画像データを付与したツイートの投稿

message = '画像投稿のテストです'
#ツイート文と投稿する分の画像ID(カンマ区切り)を設定する
twitter.update_status(status=message, media_ids=[photo_upl_inf['media_id'],capture_upl_inf['media_id']])

ソースコード

#!/usr/bin/env python
# coding: utf-8
import twython
import json

# twitter configuration
from twython import Twython
from auth import (
    consumer_key,
    consumer_secret,
    access_token,
    access_token_secret
)

twitter = Twython(
    consumer_key,
    consumer_secret,
    access_token,
    access_token_secret
)

# message create
message = '画像投稿のテストです'
photo=open('/home/pi/holy_ground_bot_ver2/img/uji.JPG','rb')
capture=open('/home/pi/holy_ground_bot_ver2/img/00000_1.JPG','rb')
photo_upl_inf = twitter.upload_media(media=photo)
capture_upl_inf = twitter.upload_media(media=capture)
twitter.update_status(status=message, media_ids=[photo_upl_inf['media_id'],capture_upl_inf['media_id']])
print(message)

キーを設定するファイルは別途用意ください。*2

おわりに

Twythonで複数画像データを投稿する方法を紹介しました。APIから画像も投稿できるようになると、自動投稿の内容がとてもリッチになった気がします。

*1:twitterの最大投稿画像数

*2:auth.py