SlackのWEB APIを試してみた

SlackのWEB APIを利用して、Slackのチャットとやり取りできるよにしてみました。
Slack

Slackの登録自体は簡単なので、気軽に試せるのもいいですね。
※全部英語ですが、気にならない程度です

Slackとは

端的にいうと、Slackとはビジネス用のチャットツールです。
botツールも作成することが可能なので、色々なところで活用ができそうですね。

SlackのReal Time Messaging APIを利用してツールを作ってみた

まずはサンプルソースから
※jQuery、AngularJSを利用しています

SlackのWebSocketに接続するまで

SlackのWebApiのrtm.connectを利用して、接続します。
本来であれば、oauth.accessを利用して、アカウント認証→返却されたaccess_tokenを取得して、rtm.connectを利用するというような流れです。
今回は認証部分は割愛しています。
※いずれ書きます
APIを利用せず、Slackから取得する場合は、ここから取得することが可能です。
※ログイン済みであること

SlackのWebSocket接続部分

rtm.connectからの返却例は以下の様になっています。

WebSocketで利用する部分は、urlの部分です。
サンプルだと以下の部分です。

SlackのWebSocketの仕様

SlackのWebsocketは30秒程度で接続が切断されます。
なので、定期的にpingを送って上げる必要があります。
下記の部分のように定期的に(サンプルでは10秒にしています)pingを送っています。

メッセージが取得される部分

onmessage部分では、色々なイベントが送られてきます。
詳細は、Real Time Messaging APIのEventsを参考にしてください。
サンプルでは、messageが来た時処理をするにしています。

メッセージを送信する

メッセージを送信するにのは、chat.postMessageを利用します。

必須な引数は、token、channel、textとの3つとなります。
textは、送信するメッセージの内容です。
as_userは、ユーザーとして送信する場合はtrue、botとして送信する場合はflaseを指定します。
usernameは、なくても問題ありません。送信するユーザー名を明示的に指定しています。

送信された内容は、onmessageに送られてくるので、色々と編集して表示するといいです。

Slackを知るまでは、WebSocketサーバーを構築してなんたらかんたらとしていましたが、SlackAPIを利用することで構築は大幅に減りますね。
サーバーの管理もしなくていいのが楽です。

あわせて読みたい

コメントを残す

Translate »
%d人のブロガーが「いいね」をつけました。