Seeed K.K.の中井です。
「Slack」皆さん利用しているでしょうか?
無料で使い始めることができるビジネスチャットツール「Slack」。 2013年のリリースから爆発的に普及してきたコミュニケーションツールだと思います。
本記事では、2回に分けて「Wio 3GからSlackにメッセージ投稿」する方法についてご紹介していきます。
- 準備編:Slackにメッセージ投稿する仕組みの確認
- 実装編:Arduino IDEを使ってWio 3Gからメッセージを投稿してみます
さて、SlackにAPI経由でメッセージ投稿するにはどうしたらよいのか、調べてみると次のようなことがわかりました。
- 利用しているワークスペースのチャンネルに直接投稿できるわけではない
- 投稿するにはAPIをハンドリングするSlack Appなるものを用意する必要がある
本記事では、順を追ってSlackにメッセージ投稿できるところまで準備していきたいと思います。
Slack Appを準備
Slack Appの役割は、APIのアクセスコントロールと、ワークスペースとそのチャンネルとの連携を行うといったものでしょうか。 Appを利用すれば、Slack以外のサービスとも連携でき、各サービス内で使用される情報をSlackに集約できるといったメリットがあるようです。
今回の目的は、IoTデバイスからの情報を集約することになると思いますので、その機能を持ったAppを用意してみます。
- IoTデバイス(Bot)がメッセージ投稿できる権限(chat:write)を持つ
- アクセスコントロールには、OAuthを利用
①Slack APIでSlack Appを作成
Slack APIを開き、画面右上にある「Your Apps」をクリックします。 続いて「Create New App」をクリックし、下記を入力します。
- App Name
- どのWorkspaceに紐づけるか指定
②アクセス許可の設定とインストール
続いて設定していきます。左のメニューから"OAuth&Permissions"を選択し、 "Scopes > Bot Token Scopes"にある"Add an OAuth Scope"をクリックし、 "chat:write"を追加します。
単機能なので楽ですね。 ページ上部の"Install App to Workspace"をクリックしてインストールします。
インストールが完了すると、アクセストークンが表示されるのでどこかにコピーしておいてください。
Slack Appをチャンネルに追加
これでSlack Appの作成は完了なのですが、まだメッセージ投稿が可能になったわけではありません。 続いてワークスペース側でどのチャンネルが作成したAppを受け入れるのかを設定していきます。
Slack Appをインストールしたワークスペースにサインインします。 あとで削除できるようにテスト用のチャンネルを作っておきます。チャンネル名は「今日の温度」とでもしておきます。
「今日の温度」を開き、会話の設定(歯車アイコン)から"アプリを追加する"を選択します 先ほど作成したアプリ(記事中では"API_TEST")が表示されるので、追加します。
最後に、「今日の温度」のチャンネルIDをメモっておきます。 メニューから「#今日の温度」を右クリックし、"リンクをコピー"。エディタなどに貼り付け、下記の部分がチャンネルIDとなります。 ※もっとちゃんとした取得方法があると思います
ようやくAPI経由でメッセージ投稿できる準備が整いました。
動作確認
コチラが今回利用するAPI「chat.postMessage」のドキュメントになります。
chat.postMessage method | Slack
chat.postMessageを利用する上で最低限必要となるArgumentsは、token、channel、textとなります。
- token:Slack Appを作成した時のアクセストークン
- channel:Appを追加したチャンネルのID
- text:投稿するメッセージ
早速、メッセージ投稿できるか確認してみます。 ページ上部の「Tester」タブをクリックすると、テスト発行できます。 token、channel、textを入力後、ページ下部の「Test Method」をクリックすると発行されます。
メッセージは投稿されるでしょうか?
まとめ
ここまででSlackにメッセージ投稿する準備が整いました。 次はいよいよWio 3Gからメッセージ投稿してみます。 続きはコチラです。
変更履歴
日付 | 変更者 | 変更内容 |
---|---|---|
2020/2/27 | mnakai | 作成 |