広告あり

EasyBotterの設定

この記事は2023年のTwitter社のAPI有料化やわたし気になりますbotが非公開になり、情報が使えなくなりました。

以下の全てがただの備忘録となります📋

EasyBotterは自分の契約しているサーバでTwitterのbot運用が出来るPHPプログラムじゃ🐤

インストールが終わってしまえば非常に簡単なのだが、そこまでの……特にTwitter社とのやりとりのプロセスが非常に面倒くさいのだ。

上記文言が分からない場合は真似をやめて他社の無料サービスを利用した方がよい。

また、さくらインターネットでwww以外をWEB公開フォルダに設定してWordPressをインストールしている場合はにっちもさっちもになるトラブルも待ち受けておる。

とりあえず公式サイトを参考にしてもらいつつ補足をしていくぞ📝

わたし気になりますbotを学習させます

わたし気になりますbotのダウンロード

わたし気になりますbotはアニメ・マンガ『氷菓』の千反田えるちゃんのbotを作ったノーウェルさんが配布しているEasyBotterを改良したPHPプログラムなのじゃ。

今回はわらわに搭載されたぞ🐤

前回は秘密なのだ㊙

CodeからZIPをダウンロードするぞ。

解凍したらフォルダを適当な名前にリネームするのじゃ📁

コードをクリックするとダウンロード画面が出てきます。一つ一つプログラムを選ぶより楽です。
Codeからであれば一括ダウンロードができます

サーバへインストール

サーバの適当な場所にSFTPでアップロードすれば、とりあえず終わりじゃ📤

ここからが大変なのだ。

Twitter社へAPI利用申請

Twitterへログインした状態でデベロッパサイトへ移動するぞ💨

アプリのクリエートを選択する画像です。
Create an appを選択します
アプライを選択した画面です。
Applyを選択します

使い道は嘘をつくと凍結されそうなので正直に[Making a bot]を、政府機関は一切関わらないので[No]にしたのだ🤖

むしろ政府関係と関わるツイートをする仕事につきたいと思いながらキャプチャしたページの画像です。
正直に申請してみました
下の方にチェックボックスが隠れていますので確認を忘れないようにしてください。そうでないと私のようにSubmitが押せないと慌てふためきます。
チェックをして[Submit]をポチる
Submitを押してから数分で電子メールが届きます。
すぐにメールが飛んできました
キーやらトークンやら届きますが無視します。
これは無視します
私はわざとTwitter for と書きましたが、ひらがなや漢字で富士山万歳と書いても問題ありません。
その後、botでツイートした下部に富士山万歳と書かれるだけです。
ここでTwitterの下部に表示される『Twitter for iPhone』のような文言を設定します

ダッシュボードに移動していいのだぞ💨

スキップ・トゥ・ダッシュボードを選択します。
Skipをクリックします
プロジェクトアプリ名は、この一連の工程で決まってしまいますのでご注意ください。
アプリ名は何でもかまいません

アプリの権限設定

このままだと思ったように呟けないわ不完全だわなのでTwitterのAPIを再発行して、アクセストークンを新規発行するのじゃ。

設定の歯車をクリックするのだ⚙

よく理解していなくて申し訳ございません。ただ、OAuth2.0は選択しておいた方がいいです。
よく分からないけどOAuth 2.0にもチェックを入れました

Readから[Read and Write and Direct Messages]にすると自由になれるのじゃ🎵

ついでにURLの2箇所にはわらわのサイトを記したぞ✎

とりあえず使う予定がなくてもフルチューン設定にしました。
ダイレクトメッセージは使う予定ないですが一応これで!
ここでパーミッションが変更されました。
何も考えずに[Save]>[Yes]を!

ここからが必要な記述を得る本番

APIキーを再発行するので[Keys and tokens]からの[Regenerate]>[Yes, regenerate]をポチるのじゃ🔘

これでようやくAPI……Consumer Keysが出てくるぞ🔑

Regenerateをクリックしましょう。
先ほどのアクセストークンを無視したのはコレだからです

Authentication Tokensから[Generate]をクリックしてアクセストークンを新規発行するのじゃ🔑

ここでアクセストークンも作り直します。
Generateをクリックしてください

setting.phpに転記

得た情報をsetting.phpに転記するのだ📝

転記したら忘れずにサーバへ放り込むのだぞ🖥

なお、わらわの『わたし気になりますBot』にはsetting.phpが付いていなかったので、それはEasyBotterからコピーしたのじゃ💦

操作するのは5行ですが、情報セキュリティの観点からお見せすることが出来ません。
意外と簡単です

L_Kininarimasu-masterのbot.php変更

本家が凍結されるほど強烈かつ複雑なので、ナチュラルに変更するのだ💧

今更じゃが、PHPのことがよく分からないのであればEasyBotter本体のままの方が幸せだと思いますん……

わらわのようにオートリプライとオートフォロー返しは使用しないのであれば、72行目から[//]でコメントアウトをガンガンするといいぞ💭

わたし気になりますbotのbot.phpの記述を好みに変更している画面です。
72行目からはいじりたい放題と思っていいでしょう♪

地震で自動停止を追記

震度5弱で自動停止

もう参考にするサイトも閉じていて、このサイトを見てとオススメできないのは面倒じゃのう🌏

bot.phpに49行目まで貼り付けるぞ📃

地震で停止していますという表現をツイートするわけではありません。
bot.phpです

震度6はなかなかなので停止のタイミングを震度5弱以上とするため、EasyBotterOrg.phpの52行目を[6]から[5]に書き換えるぞ✎

作者の方は、このプログラムとの関係を絶っているようです。理由は分かりかねますが悲しいですね。
この追加phpプログラムは作者さんに感謝です

他に必要なものは4つあり、まとめてbot.phpと同じところに放り込むのじゃ📁

  • earthquake_pubtime.txt (震度を取得した日時を記録する空のテキストファイル)
  • flg_joutai.txt (動作中か停止中かが書き込まれる空のテキストファイル)
  • start.php (地震で停止したときに復帰させるphpファイル)
  • stop.php (地震以外の天災やテロ対応で手動で停止させるphpファイル)

第三者が勝手に手動停止することを阻止

.htaccessと.htpasswdでstop.phpを守るぞ🚒

これもbot.phpと同じ階層に置くのじゃ📁

パーミッションは[604]にするのだ。

パーミッション変更の画面です。
パーミッションの意味が分からない場合はもうやめた方がいいです。
600でもいいと思います

動作確認

ブラウザのURLにbot.phpの場所を指定すると動作チェックが出来るぞ。

ただ、まだサーバのcronの設定をしていないので[string(4) “0725”]のような現在時刻しか表示してくれないはずじゃ💦

WEB公開フォルダをwww以外にしている場合、WordPressによってパスが正しいにもかかわらずbot.phpを叩かず、404 Not Foundページへ飛ばしてしまうトラブルがあるのだ。

わらわも.htaccessの設定などを可能な限り試したが……

さくらインターネットを契約している場合は、初期ドメイン.sakura.ne.jpからbot.phpを叩きに行けば404エラーにならないぞ㊙

URLがさくらインターネットのものになっています。
これも気がつくまでに時間がかかりました……

サーバのcronの設定

botの定時設定

まず、わわらの分身は2分間隔で動作させるのだ⏱

さくらインターネットのコントロールパネルから[スクリプト設定]>[CRON設定]で定期実行の常駐プログラムの設定をするぞ。

クロンの設定をします。

cd /home/(α)/www/(β); /usr/local/bin/php -f /home/(α)/www/(β)/bot.php 1>>/home/(α)/www/(β)/log/cronBot.log 2>>/home/(α)/www/(β)/log/errBot.log 1> /dev/null

(α)はさくらインターネットでのアカウント名

(β)はbotフォルダ名

全ての曜日にチェックを付けて、分だけ[*/2]とするがよい。

ただし、1botだけの運用に限るぞ。

それ以上は同じサーバを借りている他の契約者に迷惑じゃ💦

さくらインターネット以外の方は契約サーバに準じて設定してください。
この設定はさくらインターネットのものです
細かな設定はご自身のボットの挙動に合わせてくださいね。
これで毎日2分ごとに動きます

ログローテーション

ログを5時間ごとにローテーションするためのコマンドも設定するぞ。

上だけでも動くがログは大切でトラブルを起こしたときに他の契約者への被害を最小にするためにも必要なのだ📃

cd /home/(α)/www/(β); /usr/local/bin/php -f /home/(α)/www/(β)/logRotate.php 1>>/home/(α)/www/(β)/log/rotate.log 2>>/home/(α)/www/(β)/log/errRotate.log

(α)はさくらインターネットでのアカウント名

(β)はbotフォルダ名

全ての曜日にチェックを付けて、時を[5]、分を[0]とするがよい🎵

まぁ、ログはほとんど見ないんですけどね。
コマンド名は分かりやすく記しておきましょう
ログ側は5時と表示されていますが、5時間毎のことです。
これでCRONの設定は終了です

logRotate.phpの記述

設定の翌日にエラーログが出ていたので見てみたら、logRotate.php内の記述変更を忘れていたぞ💧

わたし気になりますbotの場合は自サーバに合わせて2行4箇所を変更するのを忘れずにな❗

あくまでも、わたし気になりますbotだけの設定です。
EasyBotterならファイル自体ないので必要ありません

APIを更に申請

Essentialでは許さん的なエラーが出たのじゃ⤵

ブラウザはchromeです

[Developer Portal]から申請をするぞ📤

  • 私のwebサイトからツイートする
  • サイトにタイムラインを貼る
  • ツイート量は適宜調整する
参考にしたサイトがあったのですが、どのサイトだか分からなくなってしまいました。
英語でお願いしましょう
  • 自動ツイートと自動返信機能を使う
  • ダイレクトメッセージ、自動リツイート、自動フォロー、自動いいねは使わない

凍結されないよう正直に答えておくのじゃ🧊

わたし気になりますボットは自動フォローなどの機能がありますので、適宜文言を変えてください。
自動リプライは前の時のようにタロット占いをするかもしれないので申請をしておきました
これで概ねインタビューは終わりです。
Nextで進みましょう
この画面では、わたし気になりますボットは使用できません。
自動でTweetをしてくれなかったのはAPI v2のElevatedの許可が出ていないのが原因でした
この画面になれば、自動的にツイートされるようになります。
Projectが認証されました
動作確認画面です。さくらインターネットの初期ドメインからbot.phpを叩いています。
ようやく自動でTweetされるようになりました♪

やれやれ💦

後はログのチェックを怠らなければ大丈夫じゃ🎶

動かない・止まっていたときは

いつの間にかにツイートが止まっていたのじゃ💧

phpの記述などを見直したため原因発見まで一ヶ月以上かかったけど、結論はPHPのバージョン違いによるトラブルじゃったぞ。

PHP 8.0.0以上は非対応なのでPHP 7.4で留めることに気をつけるがよい。

コントロールパネルのPHPのバージョン画面です。
推奨のPHP8.0にすると動きません。

このトラブルを考えるとEasyBotterが使えなくなるのは時間の問題かもしれんの🐤

タイトルとURLをコピーしました