Slackコンポーネントを使用してSlackワークスペースに接続するには、Slackアプリを作成し、APIトークンを取得する必要があります。
Slackアプリとは?
Slackアプリとは、Slackワークスペースと外部のアプリケーションの間を取り持つ仲介人の設定だと思ってください。Slackアプリを利用すると、Slackコンポーネントのような外部のアプリケーションとSlackワークスペースを連携することができます。
APIトークンとは?
Slackアプリを作成すると、そのSlackアプリ用のAPIトークンが生成されます。APIトークンは、ユーザー名とパスワードの代わりとなるもので、コンポーネントはAPIトークンを使用してSlackワークスペースに接続します。
SlackのAPIトークンには2種類あります。1つ目はユーザートークンと呼ばれるもので、そのユーザーアカウントでSlack APIを実行します。ユーザートークンを使用するとすべてのパブリックチャンネルのメッセージを取得できます。2つ目はBotトークンと呼ばれるもので、BotとしてSlack APIを実行します。Botトークンの場合は、Botが参加しているチャンネルのメッセージしか取得できません。
Slackコンポーネントからの接続
この記事では、Slackアプリを作成し、APIトークンを使用してコンポーネントからSlackワークスペースに接続する方法を紹介します。
Slackアプリの作成
Slackアプリを作成するには次の順番で設定を行います。
- Slackワークスペースにサインインし、Slackアプリ設定ページにアクセスします。
- 「Create New App」をクリックし、「From scratch」を選択します。
- アプリの名前を入力します。ここでは「サンプルアプリ」と入力しています。
- アプリを開発するワークスペースを選択するメニューで、自分のワークスペースを選択します。
- 「Create App」をクリックします。
アプリ権限の設定
次に、作成したSlackアプリが、ワークスペースで出来ることを設定します。この、出来ることを「権限」と呼びます。例えば、メッセージを取得する権限、メッセージを投稿する権限などで、それらの権限をSlackアプリに付与する必要があります。
アプリを作成した後、権限ページに移動します。基本情報ページで、「Add Features and Functionality」メニュー内の「Permissions」をクリックします。
「OAuth & Permissions」ページの「Scopes」セクションまでスクロールします。ここではアプリのスコープを設定します。スコープとはアプリがアクセスできる範囲のことを指します。
スコープでは、Botトークンとユーザートークンのスコープをそれぞれ設定できます。
BotトークンではBotユーザーを使ってAPIを実行し、ユーザートークンではアプリをインストールまたは認証したユーザーを使ってAPIを実行します。ほとんどのアプリではBotトークンを使用します。Botトークンではやりたいことが出来ない場合のみユーザートークンの使用を検討しましょう。
Botトークンを使う場合は「Bot Token Scopes」、ユーザートークンを使う場合は「User Token Scopes」にある「Add an OAuth Scope」をクリックして必要なスコープを追加します。
ここではBotトークンを使用するため、「Bot Token Scopes」にある「Add an OAuth Scope」をクリックし、表示される入力欄から「chat:write」「chat:write.customize」「chat:write.public」の3つを追加します。このスコープを追加することでアプリからSlackにメッセージを投稿することができます。
Slackコンポーネントを使うには、使用するコンポーネントによってそれぞれ次のスコープが必要になります。
SlackPost
- chat:write
- chat:write.public
- chat:write.customize
SlackUpload2
- files:write
- files:read
- users:read
- channels:read
- groups:read
- im:read
SlackGet
- channels:history
- groups:history
- im:history
- mpim:history
SlackDelete
- chat:write
Botユーザーの作成
Botトークンのスコープを設定した場合は、Botユーザーの作成が必要です。ユーザートークンを使用する場合はここでの設定は不要です。
アプリ設定画面の左サイドメニューの「App Home」をクリックします。「App Home」ページの「Your App's Presence in Slack」で「Edit」ボタンをクリックし、Botユーザーの設定をします。
Display Nameに表示名、Defaut usernameにユーザー名を入力して「Add」ボタンをクリックし、追加します。ユーザー名は小文字英字、数字、ピリオド、ハイフン、アンダーバーのみ使用でき21文字以内で指定する必要があります。
ワークスペースにSlackアプリを追加
次に、設定したSlackアプリをワークスペースに追加します。ワークスペースに追加することでアプリを使用できるようになります。
サイドバーにある「Setting」セクションの「Install App」を選択して「Install to Workspace」をクリックします。
「アプリがアクセスする権限をリクエストしています」というページで、「許可する」をクリックします。
トークンの取得
アプリをインストールした後、「Settings」>「Install App」ページに進むとアプリのトークンが表示されます。ここで取得したトークンは、Slackコンポーネントで使用するSlackコネクションに設定します。「Copy」ボタンをクリックするとクリップボードにコピーされるので、メモ帳などを使ってトークン文字列をなくさないように保存しておきます。
Slackコネクションの作成
次の手順で、フローデザイナーからSlackコネクションを作成します。
フローデザイナーでサーバーにログインし、フローデザイナーの左下にあるコネクションペインで、「コネクションの作成」ボタンをクリックします。
コネクションの作成ダイアログが表示されたら、接続種別で「Slack」を選択し、コネクションに任意の名前を入力します。コネクション名に日本語は使用できないので、ここでは「SampleSlackApp」という名前にします。
右上のインスペクターで、「APIトークン」に先ほど取得したトークンを設定します。
続いて「チャンネル」プロパティを設定します。
「チャンネル」ではチャンネル名、チャンネルID、ダイレクトメッセージIDを指定できます。ここでは、チャンネルIDを指定する手順を紹介します。
Slackワークスペースのサイドバーにあるチャンネルまたはユーザー上で右クリックし、「チャンネル詳細を表示する」をクリックします。
詳細ページで、下にスクロールし、IDをコピーするボタンをクリックします。
フローデザイナーの右上のインスペクターで「チャンネル」に先ほどコピーしたチャンネルIDを貼り付けます。
これでSlackコネクションの設定は終わりましたので、コネクションペインで「保存」をクリックします。
正常に接続できるかどうかを確認するために、「接続テスト」をクリックします。
テスト結果ダイアログで「200 OK」メッセージが表示されたら、Slackコネクションを正しく作成することができました。
もしもエラーが表示された場合は、フローデザイナーの右上のインスペクターで設定したSlackコネクションの各値が正しいことを再度確認してください。
Slackコンポーネントからの接続
Slackコネクションを使用するようにSlackコンポーネントに設定する方法はいくつかあります。Slackコネクションの設定間違いが少ない方法は、フローデザイナーのコネクションペインから、Slackコネクションをワークスペースにドロップする方法です。Slackコネクションをドロップすると使用できるSlackコンポーネントの一覧が表示されますので、一覧から使用したいSlackコンポーネントを選択してください。
すでにSlackコンポーネントをワークスペースに配置している場合は、Slackコネクションをそのコンポーネントにドロップするという方法もあります。もちろん、Slackコンポーネントの「コネクション名」プロパティで使用するSlackコネクションを選択することもできます。
これで、Slackコンポーネントを使ってSlackに接続することができるようになりました。