8
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Slack連携による生産性向上の施策(その2)〜Slack App編〜

Last updated at Posted at 2024-04-16

はじめに

こちらの記事は三部構成になっております。

また、全ての記事の内容を含んだ動画も用意しております。
動画で確認したい方はコチラまで。
※動画開始50分頃からの内容になります。

Slack App登録の前に

Slack Appから呼び出されるAPIの準備をします。

Lambda関数作成

  1. AWSのコンソール画面でサービス名に lambda と入力し、サービス一覧から【Lambda】をクリック
    スクリーンショット 2024-04-11 17.41.10.png

  2. AWS Lambdaのサービス画面の【関数の作成】ボタンをクリック
    スクリーンショット 2024-04-11 15.39.51.png

  3. 関数名に作成するLambda関数名を入力し、今回はランタイムを【Python 3.11】を選択して【関数の作成】ボタンをクリック
    スクリーンショット 2024-04-12 10.00.50.png

  4. このようにLambda関数が作成されます
    スクリーンショット 2024-04-12 10.12.00.png

API Gatewayの設定

  1. 作成されたLambda関数の【トリガーを追加】ボタンをクリック
    スクリーンショット 2024-04-12 10.14.28.png

  2. トリガー追加画面のソースを選択から【API Gateway】を選択、Intentラジオボタンから【Create a new API】を選択、API Typeラジオボタンから【REST API】を選択、Securtyリストボックスから【Open】を選択し【追加】ボタンをクリック
    スクリーンショット 2024-04-12 12.23.43.png

  3. こちらでAPI Gatewayのトリガーが作成されます
    スクリーンショット 2024-04-12 12.35.51.png

  4. トリガーの詳細はこちら、このAPI endpointは後ほど使います
    スクリーンショット 2024-04-12 12.43.40.png

  5. post_question-APIリンクをクリックし、APIの詳細設定を変更します
    スクリーンショット 2024-04-12 20.22.41.png

  6. API Gateway設定画面の右下にある【統合リクエスト】をクリック
    スクリーンショット 2024-04-12 20.24.08.png

  7. 画面を下にスクロールすると、統合リクエストの設定があるので【編集】ボタンをクリック
    スクリーンショット 2024-04-12 20.37.01.png

  8. 統合リクエストの編集画面の【Lambdaプロキシ統合】のスイッチをOFFに設定し、【保存】ボタンをクリック
    スクリーンショット 2024-04-12 20.43.00.png

  9. 統合リクエストの設定内容が変更されているのを確認して、画面右上の【APIをデプロイ】ボタンをクリック
    スクリーンショット 2024-04-12 20.41.50.png

  10. デプロイ画面のステージから【default】を選択し、【デプロイ】ボタンをクリック
    スクリーンショット 2024-04-12 20.48.46.png

  11. デプロイが成功したと表示されたので、これで完了
    スクリーンショット 2024-04-12 20.46.10.png

Lambda関数のコーディング

  1. デフォルトで画面のようなコードが既に作成されております
    スクリーンショット 2024-04-12 12.49.06.png

  2. Slack App作成の際に、APIの認証処理が実行されるので、その認証処理を先に作ります。下記の内容をコードソースに記載します

lambda_function.py
import json

def lambda_handler(event, context):
    # TODO implement
    print(event)
    return {
        'statusCode': 200,
        'body': json.dumps(
            {
                'challenge': event['challenge']
            }
        )
    }

3. コード修正内容を確認して、【Deploy】ボタンをクリック
 スクリーンショット 2024-04-12 12.59.23.png

4. これで準備完了です

Slack Appの作り方

初期作成

  1. Slack Appのサイトへアクセスし、【Create an App】ボタンをクリック
    スクリーンショット 2024-04-12 15.30.01.png

  2. App作成画面の【From scratch】をクリック
    スクリーンショット 2024-04-12 18.41.12.png

  3. App NameにSlack App名を入力し、Pick a workspace to develop your app in:にSlack Appを作成するワークスペースを選択し、【Create App】ボタンをクリック
    スクリーンショット 2024-04-12 18.59.07.png

  4. こちらで、Slack Appの基本情報の画面が表示され初期登録が完了です
    スクリーンショット 2024-04-12 19.05.54.png

OAuth & Permissions 設定

今回はSlackからメッセージをAPIに投げるまでの組み込みに必要な最低限の設定を実施します。

  1. 基本情報画面の左メニューから OAuth & Permissions リンクをクリック
    スクリーンショット 2024-04-12 19.33.20.png

  2. OAuth & Permissionsの設定画面を下にスクロールし、ScopesのBot Token Scopes設定の【Add an OAuth Scope】ボタンをクリック
    スクリーンショット 2024-04-12 19.37.59.png

  3. OAuth Scopeリストボックスから【channels:history】を選択
    スクリーンショット 2024-04-12 19.47.44.png

Event Subscriptions 設定

  1. 基本情報画面の左メニューから Event Subscriptions リンクをクリック
    スクリーンショット 2024-04-12 20.57.01.png

  2. Event Subscriptionsの設定画面の Enable Events スイッチをONに設定
    スクリーンショット 2024-04-12 20.57.26.png

  3. Request URLのテキストにAPI Gatewayの設定で用意したAPI endpointを入力、直後に認証処理が実行されVerifiedと認証OK!の結果が表示される
    スクリーンショット 2024-04-12 21.07.26.png

  4. Event Subscriptionsの設定画面を下へスクロールし、Subscribe to bot eventsの設定を開いて【Add Bot User Event】ボタンをクリックし、表示されたリストボックスへchannelsと入力し、リスト内容から【message.channels】を選択
    スクリーンショット 2024-04-12 21.18.59.png

  5. Event内容が設定されたことを確認し、画面右下にある【Save Changes】ボタンをクリック
    スクリーンショット 2024-04-12 21.21.24.png

  6. こちらで、EventSubscriptionsの設定が完了です

Slack Appのインストール

  1. 設定が全て完了したので、Slack Appのインストールを実施します。基本情報左メニューから Basic Information リンクをクリック
    スクリーンショット 2024-04-15 10.56.17.png

  2. Basic Information画面の【Install to Workspace】ボタンをクリック
    スクリーンショット 2024-04-15 11.55.07.png

  3. 使用しているWorkspaceに対して、Appの許可を得る為【Allow】ボタンをクリック
    スクリーンショット 2024-04-15 11.55.50.png

  4. 以下の画面に遷移し、Slack Appのインストールが完了
    スクリーンショット 2024-04-15 11.56.03.png

Slack Appを使ってみよう

  1. Slackチャンネルの設定画面を開いて Integrations タブをクリック
    スクリーンショット 2024-04-15 16.39.23.png

  2. 画面中央のAppsにある【Add an App】ボタンをクリック
    スクリーンショット 2024-04-15 16.39.37.png

  3. 追加するアプリを選択する画面の検索文字のテキストに post_question と記入し、対象のアプリが表示されるので【Add】ボタンをクリック
    スクリーンショット 2024-04-15 16.46.29.png

  4. これでSlackチャンネルにSlack Appが登録されます
    スクリーンショット 2024-04-15 16.46.43.png

  5. それでは、(その1)で作成したWorkflow Builderを使ってみます。各入力欄を記入し【Submit】ボタンをクリック
    スクリーンショット 2024-04-15 16.47.04.png

  6. Workflow Builderで入力された内容がチャンネルのメッセージとして記載されます
    スクリーンショット 2024-04-15 16.47.53.png

  7. このタイミングで、作成したLambdaのCloudWatch Logsを確認すると、メッセージの内容がLambda関数に届いていることが確認できます
    スクリーンショット 2024-04-15 16.57.05.png

ここまで

スクリーンショット 2024-04-15 17.13.39.png
Workflow Builderを使って入力した内容が、API Gateway/Lambdaにデータを送信するところまで完了
受け取ったデータを使ってBacklogへの登録、Slackへの通知機能を実装するにはどうするか?

Slack連携による生産性向上の施策(その3)〜AWS Lambda編〜 に続く…

8
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?