CentOS + PHP で Twitter bot を作成する(ランダムツイート)

Slack 用の bot を Hubot で作成したことを書いた。

CentOS + hubot で Slack に指定時刻に自動発言する – with a Christian Wife
https://wacw.cf/2018/02/11/auto-posting-on-slack-with-hubot-and-centos/

次は Twitter bot を作成してみたい。環境は VPS 上の CentOS 7.1 。

hubot や ruby を使う方法をいろいろ試してみたが、できたのは PHP を使う方法なので、それを紹介する。あらかじめ設定した定型文をランダムにツイートする。

(1)PHP をインストールする。

# yum install php

インストールの確認。

$ rpm -qa php

(2)適当なディレクトリ(twitter-bot とする)を作成。ディレクトリへ移動。

$ mkdir twitter-bot
$ cd twitter-bot

(3)TwistOauth.phar をダウンロード。

$ wget https://github.com/mpyw/TwistOAuth/raw/master/build/TwistOAuth.phar

(4)以下のページで consumer key、consumer secret, access token、access token secret を取得する。

Twitter Application Management
https://apps.twitter.com/

(5)twitter-bot.php というファイルを作成し、以下のように記述。4で取得したコードも記入する。

 1
 2<?php
 3
 4require_once('TwistOAuth.phar');
 5
 6$consumer_key = "XXXX";
 7$consumer_secret = "XXXX";
 8$access_token = "XXXXX";
 9$access_token_secret = "XXXX";
10
11$filelist = file('list.txt');
12if( shuffle($filelist) ){
13$message = $filelist[0];
14}
15
16try {
17$to = new TwistOAuth($consumer_key, $consumer_secret, $access_token, $access_token_secret);
18$status = $to->post('statuses/update', ['status' => $message ]);
19var_dump($status);
20} catch (TwistException $e) {
21echo "[{$e->getCode()}] {$e->getMessage()}";
22}
23
24?>

(6)list.txt というツイート用のテキストを作成。1行ごとに文章を記入。ここからランダムにツイートされる。

(7)試しに実行。ツイートされるはずだ。

$ php twitter-bot.php

cron に登録すれば自動的にツイートできるようになる。

参考:
2分でわかる!LinuxのコマンドラインでPHPを実行するphpコマンドの使い方
https://eng-entrance.com/linux-php-operate

自動ランダムツイートするTwitter BOTをPHPとさくらインターネットで作る
https://montblan9.net/archives/2537