Slackと外部アプリケーションを連携させる

2017年12月15日(金)
鈴木 たかのり
連載5回目となる今回は、外部のアプリケーション連携により、様々な通知をSlackで一元管理する方法を紹介する。

RSSフィードの通知

ブログやニュースサイトなどの更新情報をSlackで受け取るために、RSSフィードを追加できます。

RSSのアプリ(https://slack.com/apps/A0F81R7U7-rss)のページにアクセスし、「Install」ボタンをクリックしてアプリをインストールします。

RSS連携用のアプリをインストール

RSS連携用のアプリをインストール

次に「Add RSS Integration」ボタンをクリックして、RSS連携を追加します。

RSS連携を追加

RSS連携を追加

次のページでRSSフィードのURLと通知先のチャンネルを指定して、「Subscribe to this feed」ボタンをクリックして、RSSフィードの連携を登録します。

RSSフィードを登録

RSSフィードを登録

ブログやニュースサイトが更新されて、RSSフィードに新しい記事が追加されれると、指定したSlackのチャンネルに記事の内容が通知されます。

RSSフィードからの通知

RSSフィードからの通知

なおRSSフィードの登録は、スラッシュコマンドからでも可能です。任意のチャンネルのメッセージボックスで/feed subscribe RSSフィードのURL と書いてメッセージを送信すると、RSSフィードが登録されます。

スラッシュコマンドでRSSフィードを登録

スラッシュコマンドでRSSフィードを登録

タスク管理ツールとの統合

Slackは各種タスク管理ツールとの連携ができます。著名なタスク管理ツールでは、下記のサービスがSlackとの連携に対応しています。

各タスク管理ツールとの連携用アプリをインストールすると、タスクの作成、状態の変更などがされた時に、Slackに通知メッセージが送信されるようになります。また、アプリによってはSlackにスラッシュコマンドが追加され、スラッシュコマンドでタスクの追加、変更などの操作ができるようになります。

以下はTrelloのボード上でタスク(Trelloでは「Card」と呼びます)を作成してから、期限を設定した際の通知の例です。なお、Trelloの画面操作をSlackに通知する場合には Trello Alertsアプリ(https://slack.com/apps/A0F814C4R-trello-alerts)を使用します。

Trelloの操作をSlackから行いたい場合は、Trelloアプリ(https://slack.com/apps/A074YH40Z-trello)を使用します。このアプリをインストールすると、/trelloスラッシュコマンドでタスクの作成、コメントの追加などができるようになります。

Trello Alertsアプリでの通知

Trello Alertsアプリでの通知

GitHubとの連携

Slackは、ソースコードのバージョン管理ツールとも連携可能です。ここではGitHub(https://github.com/)との連携方法について紹介します。

GitHubアプリをインストールすることにより、ソースコードのCommit、Issue(課題)の変更、Pull Requestの作成などがSlackに通知されます。

まず、GitHubアプリ(https://slack.com/apps/A0F7YS2SX-github)をインストールします。次にGitHubの通知を送信するチャンネルを選択してAdd GitHub Integration をクリックします。

GitHub連携を追加

GitHub連携を追加

次にGitHubのアカウントを認証するために、Authenticate your GitHub account をクリックします。

GitHubアカウントを認証

GitHubアカウントを認証

認証が通ると、GitHubのリポジトリの一覧が表示されるので、通知したいリポジトリを選択して、画面下部にあるSave Integration をクリックしてGitHub連携を保存します。なお、Events にはGitHub上のどの操作をSlackに通知するかを設定できます。

リポジトリを指定して保存

リポジトリを指定して保存

設定後にGitHubリポジトリに対して操作を行うと、以下のようにSlackの画面に通知が表示されます。下記の画面の例ではIssueの作成と終了、Commitなどを行っています。

GitHubアプリからの通知

GitHubアプリからの通知

自動化ツールとの連携

Slackアプリが存在していないサービスとSlackを連携させるには、どうすればいいでしょうか?たとえばFacebook Pageへの書き込みや、Googleフォームへの書き込みがあった時にSlackに通知をするという処理は、Slackアプリでは実現できません。

このような処理は、IFTTT(https://ifttt.com/)やZapier(https://zapier.com/)といった自動化サービスを使用すると実現できる場合があります。IFTTT、Zapierはどちらも、「あるサービスでの処理をトリガーにして、別のサービスに通知する」のような処理を行います。前述の例だと、以下のような処理を登録することで実現できます。

  • Facebook Pageに書き込みがされた→その内容をSlackに通知する
  • Googleフォームに書き込みがされた→Googleスプレッドシートに行が追加される→1行追加された内容をSlackに通知する

アプリはそれぞれ下記のリンクからインストールできます。なお、各アプリとSlackを連携させるためには、IFTTT、Zapierそれぞれのアカウントが必要となります。

自動化ツールを使用して、Slackアプリが存在しないサービスと上手に連携してみてください。

その他ツール

その他、Essential Appsにある人気のアプリをいくつか紹介します。

Twitter

Twitterアプリをインストールすると、任意のTwitterアカウントのツイートをSlackに通知してくれます。TwitterアプリをインストールするにはTwitterの認証が必要となるため、自分のTwitterアカウントとSlackを連携する必要があります。

TwitterアプリではTwitterアカウントと、対象となるツイートの種類、投稿先のチャンネルを指定して保存します。以下の例ではslackhqアカウントが発言したツイートのみを#generalチャンネルに通知します。

Twitterアプリを登録

Twitterアプリを登録

対象のアカウントがTwitterでツイートすると、以下のようにSlack上に表示されます。

Twitterアプリの通知例

Twitterアプリの通知例

Giphy:アニメーションGIFの表示

Giphy(https://giphy.com/)は、アニメーションGIFのライブラリーサービスです。SlackにGiphyアプリをインストールすると、Slackに/giphy というスラッシュコマンドが追加されます。このコマンドに任意のキーワードを指定すると、キーワードにマッチしたアニメーションGIFが投稿されます。

Giphyアプリは下記のURLからインストールします。

Giphyアプリのインストール画面では、画像のレーティング(年齢制限のようなもの)と、投稿前にプレビューを表示するかどうかを設定できます。

Giphyアプリのインストール画面

Giphyアプリのインストール画面

以下は/giphy ferrets と入力して表示されたアニメーションGIFを投稿した例です。

Giphyの投稿例

Giphyの投稿例

Simple Poll:簡単な投票機能

Simple Pollは、Slack上で簡単な投票機能を提供します。Simple Pollアプリは下記URLからインストールします。

アプリをインストールすると、Slackに/poll コマンドが追加されます。このコマンドは最初に質問文を書いて、そのあとに選択肢を複数(スペース区切り)記述します。文字列にスペースを含む場合は、全体をダブルクォーテーション(")で囲む必要があります。

/pollコマンドが追加される

/pollコマンドが追加される

Slackで /poll 今日の晩ごはんはなにがいい? カレー ピザ うどん と発言すると、以下のようにそれぞれの選択肢のボタンが表示されます。あとはチャンネルの参加者がボタンを押して投票すると、票数と投票したユーザー名が表示されます。

/pollコマンドが追加される

/pollコマンドが追加される

まとめ

今回はアプリを使用して、各種サービスとSlackを連携する方法について紹介しました。

様々なサービスと連携することにより、いろいろな情報の通知をSlackにまとめることができて、効率的に情報を取得できるようになります。無料プランでは使用できるアプリの上限は10と制限がありますが、上手に利用してSlackを使いこなしてください。

次回は、APIを使用してSlackと連携するプログラムを作成する方法について紹介します。

株式会社ビープラウド

部内のサイトを作るためにZope/Ploneと出会い、その後必要にかられてPythonを使い始める。現在の主な活動は、一般社団法人PyCon JP理事、Pythonボルダリング部(#kabepy)部長、Python mini Hack-a-thon主催、Plone User's Group Japanなど。共著書に『Pythonプロフェッショナルプログラミング 第2版(2015 秀和システム刊)』『Pythonエンジニア養成読本(2015 技術評論社刊)』『Pythonライブラリ厳選レシピ(2015 技術評論社刊)』などがある。趣味は吹奏楽とレゴとペンシルパズル。

Twitter: @takanory
Facebook: https://www.facebook.com/takanory.net

連載バックナンバー

開発ツール技術解説
第6回

Slackを独自アプリケーションで拡張する

2018/5/9
連載6回目となる今回は、Slackの機能を拡張するためにアプリケーションを作成する。
開発ツール技術解説
第5回

Slackと外部アプリケーションを連携させる

2017/12/15
連載5回目となる今回は、外部のアプリケーション連携により、様々な通知をSlackで一元管理する方法を紹介する。
開発ツール技術解説
第4回

Slackの管理設定

2017/10/31
連載の4回目となる今回は、チームを管理する管理者として行うさまざまな設定項目を説明します。

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています