PHP

【PHP】TwiterOAuthを使って画像付きツイートをする方法

前回の記事でPHPからTwitterOAuthを使ってツイートする方法を紹介しました。

今回はそこからちょっとステップアップして画像付きのツイートを行う方法を紹介します。

前提

前回までの記事でかいた以下を完了させて置く必要があります。

  1. Twitter APIに登録する
  2. Twitter APIからAPI Key、API Key Secretを取得する
  3. TwitterOAuthのインストール

上記3点の方法は下記の記事で説明しているので、そちらを参照してください。

サンプルプログラム

手順としては以下の通りです。

  1. TwitterOAuthライブラリの読み込み
  2. APIキーやアクセストークンの取得
    ※サンプルコードはいずれも定数としていますが、Twitter連携でログインする場合はアクセストークンはDBに保管するなどして、そこから取得する必要があります。
  3. Twitter接続。
  4. 画像をアップロードし、画像のIDを取得
  5. ツイート部分のパラメータ編集
    ※取得した画像のIDを使用する
  6. ツイート

順番に見ていきます。

TwitterOAuthライブラリの読み込み

基本であるTwitterOAuthのライブラリを読み込みます。

composerで最新(2020年4月時点)ではサンプルコードのパスで問題ないはずです。

APIキーやアクセストークンの取得

API Key、API Key Secret、Access Token、Access Token Secretを取得します。

サンプルコードでは定数に記述するようにしていますが、Access Token、Access Token Secretはログイン(ツイート)するユーザーによって変わります。

ですので、ログイン機能をTwitterと連携させる場合には、データベース等にユーザー事にAccess Token、Access Token Secretを管理する必要があります。

Twitter接続

これもお決まりの文房ですね。

API Key、API Key Secret、Access Token、Access Token Secretを指定してTwitterOAuthのインスタンスを作成することでTwitterに接続できます。

画像をアップロードし、画像のIDを取得

Twitterに画像付きのツイートをする場合にはまず画像のアップロードをする必要があります。

これは決まり文句でサンプルコードの「画像ファイルのパス」の部分を変更すればOKです。

ちなにここで指定した「画像ファイルのパス」にファイルが存在しない場合はエラーとなりますあが、テキスト部分はそのままツイートされます。

個人的には内部でエラーになってほしくないので、ツイートする内容に画像が含まれるかどうかを事前に判断して、画像をアップロードするかどうか処理を分けたいところです。

ツイート部分のパラメータ編集

これも決まり文句ですね。

複数の画像もアップロードすることができます。

複数アップロードする場合のサンプルコードは以下の通りです。

ツイート

ここも決まり文句になります。

これを記述すると実際にツイートされることになります。

僕のアプリケーション「katwibo」から送信されていますね。

まとめ

いかがだったでしょうか?

テキストのみでツイートする場合に比べると画像のアップロードとパラメーターの指定部分が異なるだけで、大きく変わりません。

異なる部分もほぼ決まり文句なのでさほど難しくはないと思います。

個人的にはパラメータの連想配列の指定がごちゃっとしてるので、そこをなんとかできないかと思ってはいますけど。

ABOUT ME
Jyu2
【PC1台で稼ぐブロガー兼Webエンジニアを目指し中】IT情報やWebサービス、アプリなどの情報を発信/SIerで10年以上勤務→ストレスMAXで休職中→ブログとWebの学習を行い脱サラ計画中/ #30DAYSトライアル 1st完了→2nd実施中 / 日々の学習内容をブログにアウトプット / まずは月収5万円を目指す