【X API・旧Twitter API】PHPで自動投稿|botを作成する例

今回は、PHPでX API(旧Twitter API)を利用し、ボットのようにランダムで自動投稿する簡単な例となります。
【X API × PHP】自動投稿をする例
例では、PHPのTwitterOAuthライブラリでX APIを利用し、指定した文字列の中からランダムで投稿するスクリプトを作成します。そして、そのPHPスクリプトをレンタルサーバーのcronから実行し、自動で投稿させます。
X APIの認証情報を確認
まずは、Twitter DevelopersにAPIを利用するTwitterアカウントでログインし、APIリクエストで必要となる以下の認証情報を確認します。
また、Twitterへ投稿する場合には、User authentication settingsの編集画面で、App permissionsの設定を「Read and write」にします。
- Consumer Key
- Consumer Secret
- Access Token
- Access Token Secret
TwitterOAuthをインストール
Twitter API を操作できるPHPのTwitterOAuthライブラリをインストールします。
今回の例では、以下のページから「twitteroauth-master.zip」をダウンロードし解凍します。
また、PHPライブラリの依存関係を管理するComposerでインストールする方法など、TwitterOAuthライブラリの利用方法の詳細は、以下のリンク先を参考にしてみてください。
ランダムで投稿をするPHPスクリプトを作成
PHPファイルを作成し、以下のソースコードを記述します。コード内のxxxxxxxxの箇所には、確認したTwitter APIの認証情報をそれぞれ指定します。
例では、スクリプトを実行すると、指定した文字列の中からランダムで投稿をします。
<?php
// TwitterOAuthを利用するためautoload.phpを読み込み
require __DIR__ . 'twitteroauth-master/autoload.php';
// TwitterOAuthクラスをインポート
use Abraham\TwitterOAuth\TwitterOAuth;
// Twitter APIを利用するための認証情報。xxxxxxxxの箇所にそれぞれの情報をセット
const TW_CK = 'xxxxxxxx'; // Consumer Keyをセット
const TW_CS = 'xxxxxxxx'; // Consumer Secretをセット
const TW_AT = 'xxxxxxxx'; // Access Tokenをセット
const TW_ATS = 'xxxxxxxx'; // Access Token Secretをセット
// TwitterOAuthクラスのインスタンスを作成
$connect = new TwitterOAuth( TW_CK, TW_CS, TW_AT, TW_ATS );
$connect->setApiVersion('2');
// 投稿したい文字列を配列にセット
$array = array(
'tweet01',
'tweet02',
'tweet03'
);
// 配列をランダムにして、先頭を取得
shuffle( $array );
$tweet = $array[0];
// 投稿を投稿
$status_payload = [
'text' => $tweet
];
$result = $connect->post(
'tweets',
$status_payload,
true
);
PHPファイルとTwitterOAuthライブラリをサーバーにアップロード
ダウンロードした「twitteroauth-master」フォルダと、作成したPHPファイルを、PHPとcronが利用できるサーバーにアップロードします。
今回の例では、サーバー内の同じディレクトリに、「twitteroauth-master」フォルダと、作成したPHPファイルをアップロードします。
PHPファイルをcronに設定
最後に上記で作成したPHPスクリプトのファイルを、サーバーのcron(クーロン)に設定します。それにより、作成したPHPスクリプトを定期的に実行できます。
cronの設定については以下のリンク先を参考にしてみてください。
GASで自動投稿をする場合
PHPではなく、GASで自動投稿をする方法については、以下のリンク先を参考にしてみてください。
PHPコードの説明
以下、例のソースコードの簡単な説明となります。
ライブラリを読み込みインスタンスを作成
コード2行目からの以下の箇所では、TwitterOAuthのライブラリを読み込み、APIリクエストで利用するTwitterOAuthクラスのインスタンスを作成しています。
// TwitterOAuthを利用するためautoload.phpを読み込み
require __DIR__ . 'twitteroauth-master/autoload.php';
// TwitterOAuthクラスをインポート
use Abraham\TwitterOAuth\TwitterOAuth;
// Twitter APIを利用するための認証情報。xxxxxxxxの箇所にそれぞれの情報をセット
const TW_CK = 'xxxxxxxx'; // Consumer Keyをセット
const TW_CS = 'xxxxxxxx'; // Consumer Secretをセット
const TW_AT = 'xxxxxxxx'; // Access Tokenをセット
const TW_ATS = 'xxxxxxxx'; // Access Token Secretをセット
// TwitterOAuthクラスのインスタンスを作成
$connect = new TwitterOAuth( TW_CK, TW_CS, TW_AT, TW_ATS );
$connect->setApiVersion('2');
投稿を投稿
コード17行目からの以下の箇所では、上記のインスタンスを利用してAPIリクエストを行い、指定したテキストの投稿を投稿しています。
// 投稿したい文字列を配列にセット
$array = array(
'tweet01',
'tweet02',
'tweet03'
);
// 配列をランダムにして、先頭を取得
shuffle( $array );
$tweet = $array[0];
// 投稿を投稿
$status_payload = [
'text' => $tweet
];
$result = $connect->post(
'tweets',
$status_payload,
true
);
上記コードでは、投稿したい文字列を配列にセットし、shuffle関数で配列をランダムにして、先頭のみを取得しています。
shuffle関数の利用例などは、以下のリンク先を参考にしてみてください。