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

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

Slackは単独のチャットツールとしても便利ですが、外部のアプリケーションと連携(Integration)することによって、さらに便利に使えるようになります。

例えば、Slackと外部アプリケーションを連携することにより、以下のような各種イベントをSlackに通知できます。

  • Googleカレンダーに追加したイベントのリマインド通知
  • GitHubでのコードの更新やissueの追加などの履歴
  • ブログで最新の記事が公開されたこと通知

このように各種アプリケーションと連携することにより、通知をSlackにまとめて一元管理できるようになります。

また、SlackはAPIが公開(https://api.slack.com/)されており、簡単なプログラムで独自アプリケーションをSlackと連携させることも可能です。

ここでは、各種アプリケーションとの連携方法について主なものを紹介します。

最近のSlackニュース

9月はSlack主催のイベントがあることもあり、たくさんの機能がリリースされました。特に、Shared Channelsは仕事でSlackを使う上では、今後重要な機能になると思われます。

PreferencesのLanguage Regionで日本語を選択すると、UIが日本語に変更されます。

Preferencesで日本語を選択

Preferencesで日本語を選択

言語を日本語に設定すると、サイドメニューや各種アイコンのツールチップなどが全て日本語になります。

日本語のサイドメニュー

日本語のサイドメニュー

日本語に設定すると、メッセージの入力ボックスの横に送信ボタンが表示されるようになります。また、メッセージの送信が今までのEnterから、macOSはCommand+Enterに、WindowsはCtrl+Enterに変更されます。これは日本語入力の際、Enterキーをかな漢字変換の確定に使用するため、連続してEnterを入力したことによる誤送信を防ぐためと思われます。

日本語のメッセージボックス

日本語のメッセージボックス

今まで通りEnterでメッセージを送信したい場合は、環境設定→詳細設定で送信ボタンを表示するのチェックを外してください。

環境設定の詳細設定画面

環境設定の詳細設定画面

当然ですが、メニューだけでなく、管理画面やユーザー登録画面なども全て日本語化されています。これで、英語が苦手なユーザーにもSlackを勧めやすくなったと思います。

App Directory

Slackをより便利にするために、外部のアプリケーションとの連携ができることについて説明しました。では、どのようにアプリケーションの連携を行うのでしょうか?Slackと連携できるアプリケーションを探すには「App Directory」を使う方法と、Slackの画面から探す方法の2種類があります。

なお、無料版のSlackではアプリケーション連携の上限は10個までとなっています。有料版には、この制限はありません。

App Directoryから探す

App Directoryにはhttps://my.slack.com/apps からアクセスします。App DirectoryにはSlackと連携できる各種アプリケーション、サービスがカテゴリごとに分類されています。キーワード検索も可能なので、自分が普段使用しているサービス名や、必要とする機能をキーワードとして検索してみましょう。

App Directory画面

App Directory画面

特に使いたいアプリが決まってない場合は、メニューから「Essential Apps」を選択して重要なアプリ(おそらく多くのワークスペースで使用されているアプリ)を参考にするといいでしょう。Google Drive、Trello、Dropbox、GitHub、Twitterなどのよく使われるサービスと連携するためのアプリケーションが表示されているのがわかります。

Essential Apps画面

Essential Apps画面

Slackの画面からアプリを探す

Slackの画面からアプリを探すには、サイドバーの一番下に表示されている「Apps」をクリックします。すると、Browse Apps画面が表示されるので、あとはApp Directory画面と同様にキーワードを入力してアプリケーションを検索します。

サイドバー下部のAppsをクリック

サイドバー下部のAppsをクリック

Browse Apps画面

Browse Apps画面

各種アプリケーションとの連携

ここではよく使われるアプリケーションとの連携方法や、連携するとなにができるようになるかについて説明します。

Googleドライブとの連携

Googleドライブは、Googleが提供するクラウドストレージサービスです。Slackと連携することにより、Googleドライブに記録されているファイルの参照、共有などが行えます。

Googleドライブ上のドキュメントやスプレッドシートなど、Slackで共有したいファイルのリンクをSlackにはりつけます。するとslackbotがGoogleドライブとSlackの連携を許可するかどうかを訊いてきます。

slackbotからの確認メッセージ

slackbotからの確認メッセージ

ここで「Yes, allow」を選択すると、SlackからGoogleアカウントに対して各種アクセス権限の要求画面が表示されます。内容が問題なければ「ALLOW」をクリックして、権限を許可します。

Googleアカウントでの権限の設定画面

Googleアカウントでの権限の設定画面

次にSlackの画面で、Googleドライブとのアクセス許可画面が表示されるので、ここも問題なければ「Authorize」をクリックします。

SlackとGoogleドライブの許可画面

SlackとGoogleドライブの許可画面

ここまでの手順で、SlackとGoogleドライブが連携されます。SlackからGoogleドライブ上のファイルのタイトルや中身が参照できるので、以下のように共有したファイルのタイトルや中身のプレビューが表示されます。また、slackbotから「このファイルを共有するかどうか」を尋ねられます。たとえば「and allow them to view」を選択すると、このチャンネルにいるユーザーはこのファイルを参照できるようになります。これにより、個別のファイルごとにメンバーに対する権限設定などをする必要がなくなります。

Slack画面上にファイルの中身が表示される

Slack画面上にファイルの中身が表示される

またSlackはGoogleドライブ以外にも、以下の主要なクラウドストレージサービスとの連携に対応しています。

* Dropbox:https://slack.com/apps/A0F82E5R8-dropbox* Microsoft OneDrive:https://slack.com/apps/A53TM6XA9-microsoft-onedrive* Box:https://slack.com/apps/A0F82E57C-box

これらの連携用アプリをSlackにインストールすると、サービス上のファイルの情報などがSlackに表示されるようになります。また、これらのファイル共有サービスで管理されたファイルのURLをSlackに貼り付けると、Googleドライブと同様にアクセス権限の設定などが行われて連携されます。

Googleカレンダーとの連携

Googleカレンダーは、Googleが提供するスケジュール共有サービスです。Slackと連携することにより、Googleカレンダー上に記録されている予定のリマインダーや更新情報がSlack上に通知されます。

まずはGoogleカレンダーアプリをSlackにインストールします。Google Calendar app(https://slack.com/apps/A0F8149ED-google-calendar)のページを表示します。「Connect Calendar to Slack」ボタンをクリックして、SlackとGoogleカレンダーを連携します。

その際に、Googleドライブの時と同様にGoogleアカウントでの権限設定などが行われますが、すでに権限を許可している場合は表示されません。

GoogleカレンダーとSlackを連携する

GoogleカレンダーとSlackを連携する

続いて、通知対象となるGoogleカレンダーとSlack Channelを設定します。ここで指定したGoogleカレンダー上の予定が、Slackに通知されるようになります。

Googleカレンダーと通知先のSlack Channelを設定する

Googleカレンダーと通知先のSlack Channelを設定する

カレンダーとChannelを設定すると、通知ルールの設定画面が表示されます。ここでは以下の3つの項目を設定できます。

  • Event Reminders:イベントのリマインダーの通知設定。どのくらい前に通知するかなど
  • Calender Updates:カレンダーの情報が作成、更新、削除された際の通知設定
  • Calendar Summaries:毎日や毎週、予定一覧を通知する設定

通知ルールを設定したら「Save Integration」ボタンをクリックして、保存します。

Googleカレンダーの通知ルールを設定する

Googleカレンダーの通知ルールを設定する

以下のような画面が表示され、GoogleカレンダーとSlackの連携が設定されました。

GoogleカレンダーとSlackの連携が完了

GoogleカレンダーとSlackの連携が完了

例えばGoogleカレンダーに予定を追加すると、以下のようにSlackに通知されます。同様に予定の変更、削除や、リマインダー通知なども行われるので、ミーティングの予定などを管理して通知するなど便利に使用できます。

Googleカレンダーの予定をSlackに通知

Googleカレンダーの予定をSlackに通知

メールとの連携

有料プランでの機能になりますが、メールとSlackの連携ができます。メールの連携を行うと、任意のチャンネルにメール送信するためのメールアドレスを生成できます。

そのアドレスに送信されたメールは、Slackのチャンネルに展開して表示されます。

例えばプロジェクトのメーリングリストなどがある場合には、そのメーリングリストにSlackとの連携用のメールアドレスを追加しておくと、メールの内容がSlackにも流れるので、いちいち自分宛てのメールを確認する必要がなくなります。

メール連携のアプリをインストールして「Add Configuration」ボタンをクリックすると、以下のようなメール連携の登録画面が表示されます。通知先のチャンネルを選択して「Add Email Integration」ボタンをクリックすると、メール連携が作成されます。

メール連携の登録画面

メール連携の登録画面

メール連携を作成すると、以下のような設定画面が表示されます。通知用のメールアドレス以外に、通知先チャンネル、アイコンなどが設定できます。

メール連携の設定画面

メール連携の設定画面

メール連携で作成されたメールアドレスにメールを送信すると、チャンネルにメールの内容が表示されます。通知時にはタイトル、送信者、本文の先頭のみが表示されますが、通知領域をクリックすることにより、全文表示と折りたたみ表示を切り替えられます。

メールのSlackへの通知(折りたたみ表示)

メールのSlackへの通知(折りたたみ表示)

メールのSlackへの通知(全文表示)

メールの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メルマガ会員のサービス内容を見る

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