概要
ダンボールロボットから、Slackの指定したワークスペースに投稿をします
ダンボールロボットのhttp.post
コマンドと、slack APIのwebhooksを使います
slackbotの設定が分かる場合は、「ダンボールロボットのスクリプトを書く」まで飛ばしてください
注1: 記事の中では、Slackの設定画面が英語になっていますが、設定によっては英語でない可能性があるので、適宜読み替えてください
手順
slackbotの準備をする
ダンボールロボットが投稿するslackのチャンネルを指定します
テスト用のslackがない場合は、自分だけいるslackのワークスペースを作るのがおすすめです
Slack App を作る
ここのURLに行きます
https://api.slack.com/bot-users
ページの途中に、"Create your Slack app"という緑のボタンがあるので押します
slackbot の設定をする
このような画面が出るので
- bot の名前
- bot を使うワークスペース
を入力します
設定ができたら、今つくったslackbotの名前をクリックして、設定画面に行きますslackbotをクリックする
slackbot の Incoming Webhooks の設定をする
webhookを有効にすると、ダンボールロボットからhttp.post/<webhookのURL>
とするだけでslackに投稿できます
下の画面で緑のチェックがついている "Incoming Webhooks"をクリックして設定画面に行きます
設定画面でやることは、
- webhookを有効にする
- 新しいwebhookのURLを取得する
の2つです
1つ目は、下の画像のようにスイッチをオンにします
2つめは、"Add New Webhook to Workspace"をクリック
--> slackbotを投稿するチャンネルを指定します
URLをメモっとく
このWebhook URLをダンボールロボットで使うので、メモっておいてください
ダンボールロボットのスクリプトを書く
シナリオエディタを開く
<ラズパイのIPアドレス>:3090/scenario-editor
に行きます
slackに投稿するDoraScriptを書く
/.payload.text/おはようボット
/http.post/<さっきのWebhookURL>
以上です
解説すると、/http.post/<URL>
はpayloadに入っているオブジェクトを<URL>
で指定したURLにPOSTします
slack APIは、 { "text": "投稿したいメッセージ" }
の形式のデータだけ受け付けてくれます
なので、.payload.text/おはようボット
と書きます
これは、「payloadオブジェクトのtextプロパティに「おはようボット」を入れる」と言っています
この時点のpayloadはこうなっています↓
payload: {
"text": おはようボット
}
よくわからなかったら、 /log/{{payload.text}}
とすると見れます
おまけ: 音声認識結果をslackの投稿する
例えば、こんなかんじでslackと連携させるとか
注2: これは Google Cloud Speech APIの設定をしてないと動きません
ここを見てね
https://yamagame.github.io/dora-engine-doc/speech-to-text
/speech-to-text // 音声認識; 結果はpayloadに入る
/.input/{{payload}} // payloadの値をinputに代入
/log/{{input}} // inputの中身を確認
/.payload.text/{{input}} // payloadにslackbotにわたす値を入れる
/http.post/<slackbotのwebhook URL> // slackbotに音声認識結果をPOSTする