oViceの通知をslackに飛ばす方法


oViceのSlack通知方法

所要時間10-15分
oViceのスペースに誰かが入室した時等に通知をslackに飛ばす方法をご説明します。
写真付きで説明してるので、コードがわからない人でも大丈夫です!

つまづいたポイントも掲載しておくので、
このあたりの作業に慣れている方はサンプルコードと落とし穴だけ回避してもらうとスムーズに設定できると思います。

前提条件

  • oViceで自分のスペース(アドミン権限)を持っている
  • slackのワークスペースで管理権限を持っている

設定項目

  1. slack用アプリの作成・設定
  2. slack Incoming Webhooksの設定
  3. oViceの管理画面でWebhookのURL、PostDataを登録する

1. slack用アプリの作成・設定

① 以下のリンクを開いて、「Create New App」ボタンをクリックする。

リンク: https://api.slack.com/apps

② アプリの名前とslackのワークスペースを入力しアプリを作成します。

①アプリ名を入力 
②ワークスペースを選択
③「Create App」ボタン選択

⚠️注意点⚠️
あとでApp Name変えられるよ!って書いてるけど、信用しないでください(多分)
App Nameにアンダースコアを入れてしまった結果、設定は全て正しいのに通知が飛ばず数時間無駄にしたので記号を使わない方が無難のようです。
後からApp Nameを変更しても通知は飛ばず、同じ設定でApp Nameに記号を使わず英語だけにすると通知が飛びました・・・(笑)

③ スコープを設定する

スコープでこのアプリで使用可能な機能範囲を設定します。

1. OAuth & Permissionsを選択する。

2. Bot Token Scopeで Add an OAuth Scopeをクリックする。

3. 【chat:write】 を選択する。

2. slack Incoming Webhooksの設定

1. Incoming Webhooksを選択する。

2. Active Incoming Webhooksのスライドをクリックし「ON」にする。

3. Add New Webhook to Workspaceを選択する。

3. 通知を送りたいchannelを選択し、Webhookを追加する。


※この時点で選択したchannelにアプリがインストールされます。

4. Webhook URLをコピーしておく。

追加が完了するとリストに下図のように表示されます。
「Copy」を選択してWebhook URLをコピーしておいてください。
※後からでも参照できます。

3. oViceの管理画面でWebhookのURL、PostDataを登録する

① サイドバーの「スペース設定」を選択する

② Webhookの「追加」を選択する

③ トリガーにするイベントとWebhookのURL、送信内容を設定する

下記、項目を設定し、OKボタンを選択します。

When(イベントの種類):

  • enter: スペースへの入場した時
  • leave: スペースから退場した時
  • away: 一時離席(コーヒーカップ)をクリックした時
  • memo: 一時離席中にメモを残した時
  • comeback: 一時離席から戻った時
  • chat: オープンスペースでのパブリックチャット
  • knock:プライベートスペースのノックをした時

Url Hook

前の手順でコピーしておいた「Webhook URL」を貼り付けてください。

Post Data(送信内容)

フォーマットは下記になります
{"text":"送信内容"}
※name, email, memo(memoトリガーのみ),message(chatトリガーのみ),room(enter roomトリガーのみ)の5つの変数が利用できます。

- 以下、サンプル
- {"text":"enter:{{name}}さんが入場したよ〜!登録アドレス:{{email}}"}
- {"text":"leave:{{name}}さんが退場しました。"}
- {"text":"away:{{name}}さんが休憩中だよ!"}
- {"text":"memo:{{name}}さんが{{memo}}だってさ!"}
- {"text":"comeback:{{name}}さんが一時離席から戻ったよ〜"}
- {"text":"chat:{{name}}さんからのチャットです。メッセージ:{{message}}"}
- {"text":"room:{{name}}さんが会議室に入りました。会議室名:{{room}}"}

!

以上で設定完了となります!!
oViceを操作してみて通知が飛ぶか試してみてください。
うまく設定できていればこんな風に指定したチャンネルに通知が飛ぶはずです。

つまづいた落とし穴

  • スコープで 「chat:write」 ではなく 「call:write」 を選んでいた。
    • スペルを形が似ていて、雰囲気で選んでしまっていた。
  • slack用のアプリにアンダースコアを利用した。
    • ルールは不明ですが飛ばない時がありました。