デザインメモ 2.0

Mattermost bot

Mattermost Bot:毎朝Googleカレンダーの予定を通知してくる秘書ねこBotの作り方

2017.05.08

今までSlackを使っていたのですが、Mattermostへお引っ越しにすることになったので、MattermostでもBotの設定をしてみた備忘録です!ほぼSlack版と似た内容ですが、ちょっとだけ違うところもあるので記事を分けてみました。

まずは完成イメージ!

完成イメージ
事前に準備しておくもの
  • Mattermostへの登録
  • Googleアカウント
  • Googleカレンダーに何かしら今日の予定を入れておく

STEP1. Webhook URLを取得

1-1. 「統合機能」ページへ移動する

1) 左上のチーム名をクリックします。

左上のチーム名をクリックのイメージ

2) プルダウンメニューから「統合機能」を選択するとページへ移動します。(※「統合機能」が表示されていないときは、管理権限がある人に設定してもらいましょう。)

「統合機能」を選択のイメージ

1-2. 内向きのウェブフックでWebhook URLを取得する

1) 統合機能の「 内向きのウェブフック」をクリックします。

「内向きのウェブフック」選択のイメージ

2) ページ移動したら、右上にあるボタン「内向きのウェブフックを追加する」をクリックします。

「内向きのウェブフックを追加する」ボタンをクリックのイメージ

3) 各項目を入力したら、右下の「保存する」ボタンをクリックします。

各項目の入力後、保存するのイメージ

4) ページ移動したら、Webhook URLというのがあるので、そこにあるURLをどこかにメモしておきましょう!

「Webhook URLの表示場所のイメージ
STEP1はここまで!

STEP2. Googleスプレッドシートでスクリプトを作成

今回、GAS(Google Apps Script)というものを使います。Googleが提供するサーバーサイド・スクリプト環境です。

2-1. Googleドライブでスプレッドシートを新規作成

Googleドライブにアクセスして、左上の「新規」ボタンから「Googleスプレッドシート」を選択します。

スプレッドシート新規作成のイメージ

2-2. スクリプトエディタを開く

メニューの「ツール」タブから「スクリプト エディタ」をクリックします。

スクリプトエディタを選択

2-3. コードをコピー&ペーストして編集

1) 下記のコードをまるっとコピペしましょう。

参考元 ↑ コードは下記の記事を元にさせて頂いてます!ありがとうございます。

2) 次にコードの中のa〜gまでの6項目を編集してください。

  • 6行目:a. GoogleカレンダーのID ★通常はGoogleのメールアドレス
  • 7行目:b. メッセージの見出し
  • 13行目:c. メッセージ本文
  • 14行目:e. アイコン画像
  • 15行目:f. Botの名前
  • 52行目:g. Webhook URL ★ここにSTEP1で取得したWebhook URLを入れます
各編集項目の場所のイメージ

※ コードはほぼSlackと同じですが、48行目の「"contentType" : "application/json"」というのを入れないとMattermostは動かなかったのでご注意を!

2-4. 保存して実行してみる(承認を許可)

1) 三角ボタンをクリックして実行してみましょう。

三角ボタンの場所のイメージ

2) 初回のみGoogleへのアクセス承認の許可が求められますのでポチポチと押しておきます。

承認許可のイメージ

Mattermostに秘書ねこさん来ましたか?これでほぼ完成です!

ここで引っかかるポイントチャネル名を間違えてる、カレンダーにスケジュールが入ってないetc.

STEP3. 通知の日時を指定する

最後に、毎朝秘書ねこさんにお知らせして欲しいので、トリガーを設定します。

プロジェクトのトリガーを設定する

1) メニュー「編集」タブから「現在のプロジェクトのトリガー」を選択します。

トリガーを設定する場所のイメージ

2) 現在のプロジェクトのトリガーのウィンドウが開いたら、「時間主導型」→「日タイマー」→「午前9時〜10時」と選択します。そうすると、Googleカレンダーにスケジュールが入っている時は、毎日、午前9時〜10時のどこかでBotが動くようになります。

現在のプロジェクトのトリガー内の設定場所のイメージ

これで、毎朝秘書ねこさんに会えます♪

完成イメージ