XserverでTwitterの定期bot環境を構築するメモ
MacOS:Catalina 10.15.7
XserverのPHP:7.4.28
XserverのComposer:2.2.17
Contents
PHPでツイート出来るようにする
まずはPHPでツイートできるようにする
Twitter Develperに登録する
Twitterアカウントの電話番号が未登録だとデベロッパー登録できないので、事前に電話番号登録を済ましておくこと。
Consumer Keys(=API Key)やbearer_token、Access_tokenは、すぐローカルにコピーすること。後で確認できなくなる。
◆User authentication settingsについて
- OAuth 1.0aをON(OAuth 2.0はOFFで良い)
- App PermissionsはRead and Write
- Callback URI / Redirect URLは適当な自身のWebサイトURLを入れる
- Website URLも適当な自身のWebサイトURLを入れる
- 以下は空欄でOK
SSHでXserverにアクセスする
PHPでツイートするために必要な「twitter-api-v2-php」を、XserverにインストールするためにSSHでXserverにアクセスする。
①XserverのサーバーコントロールでSSHの秘密鍵を作成してダウンロードする。
(参考)https://www.xserver.ne.jp/manual/man_server_ssh.php
②ダウンロードした秘密鍵を使ってターミナルからSSH接続する。
(参考)https://qiita.com/ryo2132/items/38b5a93b3df476dd2b44
アクセスする際のコマンドはこんな感じ
$ ssh -l (ユーザーID) -i (秘密鍵ファイル名) (サーバー名).xserver.jp -p 10022
ポート番号が10022であることに注意すること。
XServerのComposerを最新にする
「twitter-api-v2-php」をインストールするためにはComposerと呼ばれるパッケージ管理ツールが必要となる。
XserverにはデフォルトでComposerがインストール済みだが、一応最新のバージョンにする。(しなくても大丈夫かも知れない)
(参考)https://analyzegear.co.jp/blog/1694
XServerにtwitter-api-v2-phpをインストールする
(参考)https://blog.yublog.com/entry/2022/03/11/213138
※twitter-api-v2-phpをインストールした際、phpのバージョンが古いといったエラーメッセージが出たら…
ここ(https://forums.concretecms.org/t/x-php/1625)を参考にしてphpのバージョンを適切に切り替える。
サーバーコントロールで設定したphpのバージョンは7.4.28なのに php -v
コマンドを実行して表示されるphpのバージョンが5.4.16だったりした場合、サーバーコントロール設定したPHPバージョンと実際のPHPバージョンが異なっているので、上記のリンク先を参考に設定する。
botプログラムを書いたPHPファイルにブラウザでアクセスして、Twitterに投稿されたらOK
Cronを使ってスケジューラー登録する
定期的にphpプログラムを実行させるためには、Xserverのcronという仕組みを使う。
Cronの設定
ここ(https://www.xserver.ne.jp/manual/man_program_cron.php)を参考にCronを設定する。
上記リンク先の設定例を引用すると
(例)abc.phpをPHP 7.2 で実行する場合
/usr/bin/php7.2 /home/サーバーID/独自ドメイン名/public_html/abc.php
となっているように、php○.○の後は半角スペースが入るのと、自分の環境ではなぜかphp-fcgi7.4 のように-fcgiを付けてFastCGIとしないとCronが動作しなかった。
設定上の注意
Cronの日付設定と曜日設定はorで判別されることに気をつけること。
特定の日付だけ動かしたいのに、曜日指定も入れるとその曜日にも必ず動いてしまうため意図しない日付で動いてしまう。
以上。
コメントを残す