0
0

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のメッセージからのレスポンス→SlackApp→外部API

0
Posted at

データ連携に奮闘中の皆様、いかがお過ごしでしょうか。

Slackのメッセージからレスポンスを戻せるのですが、外部APIに戻そうとして、はまりました。

見ての通り、「Request URL」なるものがあるので、APIのエンドポイントURL自体は貼れます。
しかし、★の認証はどこでするのだという…謎があります。

image.png

調べてみたところ、他にSlack自体のワークフローを使う方法と、AmazonのAPI Gatewayを使う方法の2つがあることが、分かりました。

外部APIキック方式 メリデメ比較表

方式 概要 認証可否 メリット デメリット
SlackApp
Request URL
SlackAppのRequest URLに外部APIのエンドポイントを直接設定し、レスポンスをキックする方式 × 不可
  • 設定が簡単でコードが不要
  • Slackのイベントを直接外部APIに転送できる
  • 認証情報(トークン等)をRequest URLに含められない
  • セキュリティ面でのリスクがある
  • 柔軟なリクエスト加工が難しい
Slackワークフロー Slack標準のワークフロー機能を使って外部APIをキックする方式 ○ 可能
  • 認証トークンをワークフロー内に設定できる
  • ノーコードで設定可能
  • Slackネイティブで管理がしやすい
  • 複雑なロジックや条件分岐には対応しにくい
  • Slackの仕様変更に依存する
  • 有料プランが必要な場合がある
Amazon API Gateway
& Lambda
フルスクラッチで構築。SlackAppのRequest URLにAPI GatewayのエンドポイントをセットしLambdaで処理する方式 ○ 可能
  • 認証情報をLambda内で安全に管理できる(AWS Secrets Manager等)
  • 柔軟なロジック・条件分岐が実装可能
  • 外部APIへのリクエスト加工が自由にできる
  • スケーラビリティが高い
  • 実装コスト・開発工数がかかる
  • AWSの知識が必要
  • インフラ管理・運用コストが発生する

このままだと先に進まないので、何かしら試してみたいと思います:rice_ball:

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?