6
4

More than 3 years have passed since last update.

Alexa で Slack を操作してみる 【IFTTT 編】

Posted at
1 / 28

はじめに

コロナ自粛中はフルリモートで勤務をしておりました。その中で、離籍中や会議中、お昼休みなどはステータスを変えるという会社のルールがあったのですが、Alexa を使ってできたらちょっとだけ楽になるなと思ったので実際に作ってみました。


作ったもの

今回作ったのは Alexa で Slack のステータス絵文字を変更する IFTTT アプレットです。

「アレクサ、勤務開始トリガー」という発話で Slack のステータスアイコンが :house: に切り替わります。

こんな感じのイメージです。

image.png

「アレクサ勤務開始トリガー」

image.png


必要なもの

  • Alexa 搭載のデバイス(スマホの Alexa アプリでもOK)
  • Amazon アカウント
  • IFTTT アカウント
  • Slack アカウント

IFTTT とは?

  • IF(もし)
  • THIS(これをしたら)
  • THEN(そのあと)
  • THAT(あれをする)

の略で、様々なウェブサービス同士を簡単に連携させてオリジナルのアプリを作成できるサービスです。基本的な情報や使い方は下記などを参考にしてみてください。


作り方


Alexa をトリガーとして設定する

Alexa は IFTTT で連携できるサービスの中でも代表的なものです。様々なイベントを取得できますが、今回はユーザが Alexa に特定のフレーズを話しかけたときにイベントが発生するように設定します。


  • IFTTT のメニューから Create を選択 image.png

  • This のとなりの+マークをクリックしてイベントの内容を定義していきます。 image.png

  • Alexa を検索 image.png

  • connect をクリックして Amazon アカウントでログインする image.png

  • Say a Specific Phrase トリガーを選択する

このトリガーは、特定のフレーズに対してイベントを発生させる、というものです。
image.png


  • このアプレットを起動するためのキーワードを入力してトリガーを作成します。

image.png


Slack の設定

Slack も IFTTT と連携できますが、現在公式に利用できるのはあるイベントが発生したときに、特定のチャンネルに投稿する、というものだけです。そこで、Webhooks を利用して Slack API を叩くことで、ステータスの変更を実現します。
ここからの作業は先ほどの IFTTT 画面を保持したまま、別タブで行うなどしてください。


  • Slack のアプリ管理ページを開いてCreateNewApp をクリック

image.png


  • アプリ名と作成するワークスペースを入力して Create App をクリック。

image.png


  • メニューバーの OAuth & Permissions をクリック

image.png


  • スコープを設定する

今回はユーザのステータスを変更したいので、該当する権限users.profile:writeを User Token Scopes の方に追加します。
スコープについての説明は下記などをご参照ください。
https://api.slack.com/lang/ja-jp/understanding-oauth-scopes-bot

image.png


  • アプリをワークスペースにインストールする

OAuth Tokens & Redirect URLs の Install App To Workspace をクリックします。

image.png


  • 正しい権限が付与されているか確認して許可

image.png


  • トークンを取得

後ほど使用するので控えておいてください。

image.png


IFTTT の処理の設定

再度 IFTTT の画面に戻ります。

  • That の隣の+マークをクリックしてイベント発生時の動作を定義していきます。

image.png


  • Webhooks を検索して選択

Webhook は HTTP リクエストを叩いたり、逆に叩かれるエンドポイントを作成をしたりということが簡単にできる仕組みのことです。

image.png


  • Make a web request を選択

image.png


  • API を叩くために必要な情報を記入

今回使用するのは users.profile.set メソッドです。
Slack の公式ドキュメント に従って項目を入力していきます

image.png

記入する内容は下記です。

項目 内容
URL https://slack.com/api/users.profile.set
Method POST
Content Type application/x-www-form-urlencoded

Body は下記のように記入します。xoxp-XXXXXXXXX...の部分に自分のトークンを入れてください。

Body
token=xoxp-XXXXXXXXXXXXXXXXXXXXXXX&profile={"status_emoji": ":house:"}

ここまで記入したら Create Action をクリックしてアプレットを作成します。

※今回、json 形式ではなくx-www-form-urlencoded 形式にしたのは、IFTTT の Webhooks ではリクエストのヘッダに Charset など、Slack API の仕様で定められているプロパティが設定できないためです。


  • 最後にアプレットの内容を記入して Finish をクリックして完成

image.png


実際に動かしてみる

最初のステータスを確認

image.png

「アレクサ勤務開始トリガー」

image.png

できました!!!!!!


まとめ

Alexa と Slack を IFTTT を利用することで非常に簡単に連携させることができました。Slack API には他にも様々なメソッドが用意されているので、今回と同様の方法で多様な動作を実現できると思います。是非チャレンジしてみてください。

6
4
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
6
4