Python

【PythonでTwitterAPIを利用】複数の画像付きでツイート投稿する。

こんにちは(@t_kun_kamakiri)(^^)

前回の記事ではPythonでTwitterAPIを利用してツイート情報取得までを行いました。

前回の記事

 

先日TwitterAPIを利用してTwitterのbotを作成しました。

botくんの運用方法としては「製造業ブロガー」の方々と共有でGoogleスプレッドシートに投稿内容をまとめPythonを使って定期的に自動でツイートしてもらうという仕組みを作りました。

本記事のシリーズではPythonでTwitterAPIを利用してGoogleスプレッドシートから自動投稿までの軌跡をまとめていきます。

こんな方ことがしてみたい方が対象

PythonでTwitterAPIを利用

さらに「Twitterの投稿内容のデータ分析」や「誰でも使える分析ツールの自作」までできればワクワクしてきませんかね(^^)

では、本記事の内容です。

本記事の内容

PythonでTwitterAPIを使って

  • ツイートの投稿
  • 複数画像付きの投稿

ここではPythonを使います。

Python3.7.6(Anaconda)

僕はデイトラPythonコースで勉強することで短期間で色々なことができるようになりました。↓こちらで学んだ内容をアレンジして記事を書いています(^^)

スポンサーリンク

Twitterの操作(TwitterAPIについて)

Twitter操作をPythonで行うにあたってTwitter操作用のPythonライブラリを調べていたらかなり多くのライブラリが用意されていることがわかりました。

Twitterアカウント作成TwitterAPI申請は前回の記事でも書いていますのでご参考ください。

前回の記事

TwitterAPIの種類

TwitterAPIにはいくつか制限があるので確認しておきましょう。

API制限の確認

 

こちらに早見表があります。以下ちょっとまとめると・・・

代表的な操作を簡単にまとめたのが次の表です。
回数は、15分の間で許可されている回数です。※制限がかかってしまった場合は15間待ってください。

操作説明回数
ホームタイムラインフォローしてるユーザーたちのツイートを読み込む。15
ユーザータイムライン特定ユーザーのツイートを読み込む。180
フォローリストフォローしてるユーザー一覧を読み込む。15
フォロワーリストフォロワー一覧を読み込む。15
いいねいいねの一覧を読み込む。15
トレンドトレンドの一覧を読み込む。15
検索ツイートをキーワード検索する。180

回数については使用した感覚的にはあっているかなと思います。
要するにあまり派手に使わないようにってことです_(._.)_

さらにsearch/tweetsに関して検索できるのは1週間前のツイートまでです。

カマキリ

1週間前までしかツイート情報は取得できないのでデータ分析用に逐一取得していかないといけませんね。

Pythonで複数画像付きの投稿(TwitterAPIを使用)

では、さっそくTwitterAPIを使っていくのですがここでの目標は以下となります。

目標

特定のアカウントから5つのツイートを取得し、

  • ツイートを投稿
  • ツイートを投稿(複数画像付き)

最終的には4枚の画像付き投稿ができることを目標とします。

では早速やっていきましょう。

ひとつひとつの動作がわかるようにjupyter labで行ったものを記載しておきます。
解説も載せておきますのでご参考ください。

全体のコードは最後に記載しています。

4枚の画像をGoogleドライブにアップ

投稿したい画像をあらかじめGoogleドライブにアップしておく必要があります。

画像をアップルすrことができれば「フォルダを選択」➡「共有」➡「リンクを取得の『変更』」から「リンクを知っている全員」を選択しておきます。

このように共有設定をすることでGoogleドライブから画像データを取得することができます。

.envファイルを用意

Pythonコードを書く前に準備が必要です。

Twitterにログインした状態で、Deeloperサイトへアクセスします。

  • コンシューマーキー (API key)
  • コンシューマーシークレーット(API secret key)
  • アクセストークン(Access token)
  • アクセストークンシークレット(Access token secret)

をメモしておきます。

Pythonのコード内で認識させる必要があるのですが、コード内に直接べた書きするとセキュリティ的に良くないので、「.env」ファイルから読み込むようにします。

「.ipynb」と同じフォルダ内に「.env」ファイルを作成します。

これで認証用のキーの設定を読み込める準備ができました。

jupyter labで動作確認

必要なライブラリは事前にターミナルでインストールしておきましょう。

AnacondaのPythonを使っている場合はpipコマンドで外部ライブラリをインストールするとファイルがぐちゃぐちゃになって壊れてしまう可能性があるため「conda insall ライブラリ名」とGoogle検索してインストール方法を調べてください。
今回必要、Anacondaでインストールされていないライブラリは以下なのでインストールしておきます。

また、モジュールのimportでエラーがでたら上記のように適宜インストールをしてください_(._.)_

動作確認は下記のようにjupyter labで行っています。
一緒にコードを書いて理解をしましょう。コードが理解できたら最後に全体のコードをまとめる流れです。

ここではrequests-oauthlibを使っています。

<403>とエラーが出てくる場合は投稿のための権限に引っかかっている可能性があります。↓こちらの記事をご参考ください。

エラー403と出てくる場合

 

カマキリ

コードをひとつひとつ実行すれば中身の理解は深まりますね。

全体のコード

こちらが全体のコードとなります。
以下のコードでツイート投稿内容が画像付きで投稿できます。

事前に画4枚の画像のidはGoogleドライブから取得しておいてください。

コード内の↓こちらにidを設定しています。

では、全体のコードです。

 

【結果】

このように4枚の画像が投稿されればOKです(^^)/

まとめ

PythonでTwitterAPIを利用して複数画像付き投稿をしてみました。

次回の記事はこちら

Pythonの理解にはこちらの参考書で勉強しています。

独習Python

独習Python

山田 祥寛
1,650円(07/31 23:57時点)
発売日: 2020/06/22
Amazonの情報を掲載しています

【プロフィール】

カマキリ
(^^)

大学の専攻は物性理論で、Fortranを使って数値計算をしていました。
CAEを用いた流体解析は興味がありOpenFOAMを使って勉強しています。

プロフィール記事はこちら

 

大学学部レベルの物理の解説をします 大学初学者で物理にお困りの方にわかりやすく解説します。

このブログでは主に大学以上の物理を勉強して記事にわかりやすくまとめていきます。

  • ・解析力学
  • ・流体力学
  • ・熱力学
  • ・量子統計
  • ・CAE解析(流体解析)
  • note
    noteで内容は主に「プログラミング言語」の勉強の進捗を日々書いています。また、「現在勉強中の内容」「日々思ったこと」も日記代わりに書き記しています。
  • youtube
    youtubeではオープンソースの流体解析、構造解析、1DCAEの操作方法などを動画にしています。
    (音声はありません_(._.)_)
  • Qiita
    Qiitaではプログラミング言語の基本的な内容をまとめています。
関連記事もどうぞ