3
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

CentOS7.3 環境(Vagrant)に Mattermost いれたので php で bot を追加してみる(Outgoing WebHooks) その1

Last updated at Posted at 2017-08-01

bot

Mattermost いれたので Hubot でも入れて遊んでみようと思ってみつつも、Hubotの設定とcoffie script 覚えるのが少し敷居が高かったので、とりあえず bot だけサクっと動作させみた。かついいお手本サイトさんがあったので参考にさせて頂きました。

結果的に「超簡単」ではあるんだけどね

やり方が判れば、みな「簡単だよー」って言うと思うけど、botのアイコン変わらなかったり名前が変更されなく15分位悩みました。その他は、まあ割と手順とおりにやればいい。

統合機能の事前準備

まず「システムコンソール-統合機能-カスタム統合機能」を選択する。※日本語化してます
そこで下記の機能を有効に設定します。

・統合機能によるユーザー名の上書きを許可する:
・統合機能によるプロフィール画像アイコンの上書きを許可する
・統合機能の管理を管理者のみに制限する

image.png

超簡単botを設置してみる

超簡単!MattermostにBOTを追加する

上記を参考にしつつ進めていきます。「echo ほげ」入力すると bot から「2017/08/01 13:21:23 ほげ」って返信される機能を作ってみます。

コールバックURL

入力された文字列を処理するための、いわゆるAPIを実装します。どこに設置してもいいですが、Mattermost は 80 ポート使っているので、Apache(8080)+php とか別ポートでAPIを動かしていればいいです。

echo.php
<?php
if ($_POST['token'] != "bsfwydtxc3rgznwki35gw6s5to") { return; }
 
$text   = $_POST['text'];
$query  = preg_split('/[\s\x{3000}]/u', $text, 2);
 
echo json_encode(array("icon_url" => "/static/emoji/1f697.png", "username" => "echo", "text" => date("Y/m/d H:i:s") . " " . $query[1]));
return;

ここで重要なのは $_POST['token'] !=の定義でトークンを判定していること。トリガーで起動されるがトークンと一致してないと処理しない判定です。定義いるのかな?

botの定義(外向きウェブフック)

外向きウェブフックを選択して。

image.png

定義した最終結果だけだけど、ここで必要な定義は2つ。
まず「トリガーワード」は、bot が起動する条件。
あと「コールバックURL」、こちらは実際に動かすbot。

image.png

定義をするとトークンが払い出されるのでメモするなりします。
そしてbotプログラムに反映すること。

動作確認してみる

「echo あああ」って入力してみる。きたーーー!!!
本当だ、超簡単だったww

image.png

phpなら

phpなら簡単にDBアクセスすることできたり、スクレイピングしたりとか色々できるから便利機能をちょちょいって作れるのがいいかもね。

参考にさせて頂きましたサイト様

超簡単!MattermostにBOTを追加する
SlackクローンのMattermostを使ってみる - 外部連携編 -(WebHooks、Hubot)

3
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?