mattermostのbot環境構築方法(windows)※php版
参考と試しのphpファイルは以下のサイトからお借りしました。
超簡単!MattermostにBOTを追加する
botはxamppのApach上で動かすので、
phpファイルを置く場所は
「C:\xampp\htdocs\」上になる。
今回はphpbot用にディレクトリを作成し以下のように配置する。
「C:\xampp\htdocs\php\phpbotstartup\echo.php」
ブラウザ上からは
「http://localhost:28080/php/phpbotstartup/echo.php」
でアクセスできる。
mattermostのwebhookの設定
事前に、botを動かしたいアカウントに管理者権限をつけておく。
下の赤い部分をクリックし、「統合機能」を開く
↓
↓
外向きのウェブフックを選択し、「外向きのウェブフックを追加する」をクリックする。
ウェブフックの設定画面が出るので、以下のように設定する。
コンテントタイプ:「application/x-www-form~」を選択。
チャンネル:何も選択しなければ全てのチャンネルに有効となる。
トリガーワード:参考元に合わせて「echo」とする。
コールバックURL:「http://localhost:28080/php/phpbotstartup/echo.php」
※もしmattermostとbotを動かすapacheを異なるサーバに立てている場合、localhostではなくapacheのIPアドレスを指定する。その際はapacheサーバのファイアウォールのポート開放を忘れずに。
「保存する」をクリックすると、ウェブフックの設定が完了する。
この時のトークンを「echo.php」に設定する。
すると、このトークンを持つアクセス以外は反応しなくなる。
botで色々試したい段階の場合はこのif文自体無い方がいいかもしれない。
botが反応する。
※画像ではbotの名前とかアイコンが変わってないが、連携したばかりの状態だと反映されない。一度リロードすると反映される。
botが反応してくれなかったら
ここまでの手順通りに行い、反応しない場合がある。
その場合はmattermostのログを確認する。
「C:\mattermost\logs\mattermost.log」
[2018/04/13 20:19:36 JST] [EROR] POSTイベントが失敗しました err=Post http://localhost:28080/php/phpbotstartup/echo.php: address forbidden
⇒localhostをIpアドレスに変えること
[2018/04/13 20:26:37 JST] [EROR] POSTイベントが失敗しました err=Post http://XX.XX.XX.XX:28080/php/phpbotstartup/echo.php: address forbidden
⇒mattermostが外部通信を許可してない可能性がある。
「C:\mattermost\config\config.json」
“AllowedUntrustedInternalConnections”: “IPアドレス/サブネットマスク”,
を追加する。
“AllowedUntrustedInternalConnections”: “0.0.0.0/0”,
だと全てのアクセスを許可するが、非推奨。
エラー参考
Configuration Settings
Outgoing Webhook – [EROR] Event POST failed, err=Post http:192.168.3.207: address forbidden
–追記–
botによるユーザ名とプロフィール画像の書き換えが反応しない場合
システム管理者アカウント→システムコンソール
統合機能→カスタム統合機能
・統合機能によるユーザ名の上書きを許可する
・統合機能によるプロフィール画像アイコンの上書きを許可する
この二つが無効になっていた場合、有効に変更する。
コメントを書く