Wio 3GからSlackにメッセージ投稿 (準備編)

Seeed K.K.の中井です。

「Slack」皆さん利用しているでしょうか?

無料で使い始めることができるビジネスチャットツール「Slack」。 2013年のリリースから爆発的に普及してきたコミュニケーションツールだと思います。

本記事では、2回に分けて「Wio 3GからSlackにメッセージ投稿」する方法についてご紹介していきます。

  • 準備編:Slackにメッセージ投稿する仕組みの確認
  • 実装編:Arduino IDEを使ってWio 3Gからメッセージを投稿してみます

f:id:mnakai:20200227122255j:plain

さて、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に紐づけるか指定

f:id:mnakai:20200227155652j:plain

f:id:mnakai:20200227155929j:plain

②アクセス許可の設定とインストール

続いて設定していきます。左のメニューから"OAuth&Permissions"を選択し、 "Scopes > Bot Token Scopes"にある"Add an OAuth Scope"をクリックし、 "chat:write"を追加します。

f:id:mnakai:20200227160002j:plain

単機能なので楽ですね。 ページ上部の"Install App to Workspace"をクリックしてインストールします。

f:id:mnakai:20200227160019j:plain

インストールが完了すると、アクセストークンが表示されるのでどこかにコピーしておいてください。

f:id:mnakai:20200227160032j:plain

Slack Appをチャンネルに追加

これでSlack Appの作成は完了なのですが、まだメッセージ投稿が可能になったわけではありません。 続いてワークスペース側でどのチャンネルが作成したAppを受け入れるのかを設定していきます。

Slack Appをインストールしたワークスペースにサインインします。 あとで削除できるようにテスト用のチャンネルを作っておきます。チャンネル名は「今日の温度」とでもしておきます。

f:id:mnakai:20200227160254j:plain

「今日の温度」を開き、会話の設定(歯車アイコン)から"アプリを追加する"を選択します 先ほど作成したアプリ(記事中では"API_TEST")が表示されるので、追加します。

f:id:mnakai:20200227160309j:plain

最後に、「今日の温度」のチャンネルIDをメモっておきます。 メニューから「#今日の温度」を右クリックし、"リンクをコピー"。エディタなどに貼り付け、下記の部分がチャンネルIDとなります。 ※もっとちゃんとした取得方法があると思います

f:id:mnakai:20200227160325j:plain

ようやくAPI経由でメッセージ投稿できる準備が整いました。

動作確認

コチラが今回利用するAPI「chat.postMessage」のドキュメントになります。

chat.postMessage method | Slack

chat.postMessageを利用する上で最低限必要となるArgumentsは、tokenchanneltextとなります。

  • token:Slack Appを作成した時のアクセストークン
  • channel:Appを追加したチャンネルのID
  • text:投稿するメッセージ

早速、メッセージ投稿できるか確認してみます。 ページ上部の「Tester」タブをクリックすると、テスト発行できます。 token、channel、textを入力後、ページ下部の「Test Method」をクリックすると発行されます。

メッセージは投稿されるでしょうか?

まとめ

ここまででSlackにメッセージ投稿する準備が整いました。 次はいよいよWio 3Gからメッセージ投稿してみます。 続きはコチラです。

lab.seeed.co.jp

変更履歴

日付 変更者 変更内容
2020/2/27 mnakai 作成