lambda
APIGateway
Workplace

API GatewayとLambdaでWorkplaceのwebhook認証設定

事前準備

※webhookの認証を通すまでの資料です。
機能の開発は次回アップロードさせていただきます。

  • 左タグの [統合] ⇨ [カスタム統合] ⇨ [カスタムアプリを作成]からカスタムアプリを作成 スクリーンショット 2018-03-30 午後17.45.57 午後.png

AWS Lambdaの作成

  • 検索(lambda) ⇨ [関数の作成]
    スクリーンショット 2018-03-30 午後17.49.03 午後.png

  • [一から作成] ⇨ 名前:任意、ランタイム:python3.6、ロール:任意
    スクリーンショット 2018-03-30 午後20.13.58 午後.png

  • 下記コードを記入 ⇨ 保存

lambda_function.py
import os

#######自分で設定したトークンを認証
VERIFY_TOKEN = os.environ['VERIFY_TOKEN']

#######hub.modeの値は常にsubscribe
#######hub.verify_tokenは自分で設定した任意値
#######hub.challengeは返す必要のある値 intである必要がある
def lambda_handler(event, context):
    if event.get("hub.mode") == "subscribe":
        if event.get("hub.verify_token") == VERIFY_TOKEN:
            return int(event.get("hub.challenge"))
        else:
            return None

if __name__ == '__main__':
    lambda_handler({}, None)

環境変数の代入

VERIFY_TOKENに任意の値を代入
スクリーンショット 2018-03-30 午後19.43.29 午後.png

API Gatewayの設定

  • 検索(api gateway) ⇨ [API作成]
    スクリーンショット 2018-03-30 午後18.29.17 午後.png

  • 名前:任意 ⇨ APIの作成
    スクリーンショット 2018-03-30 午後18.44.32 午後.png

  • アクション ⇨ メソッドの作成 ⇨ GET
    スクリーンショット 2018-03-30 午後18.48.31 午後.png

  • 統合タイプ:Lambda関数、リージョン:任意、Lambda関数:workplace_test ⇨ 保存
    スクリーンショット 2018-03-30 午後18.50.11 午後.png

メソッドリクエスト

メソッドリクエストをクリック
スクリーンショット 2018-03-30 午後18.57.00 午後.png

URLクエリ文字列パラメータに下記を追加
- hub.challenge
- hub.verify_token
- hub.mode

スクリーンショット 2018-03-30 午後19.02.24 午後.png

統合リクエスト

統合リクエストをクリック
スクリーンショット 2018-03-30 午後19.06.39 午後.png

  • 本文マッピングテンプレート ⇨ 名前:任意 ⇨ コード入力 ⇨ 保存
application/json
{
  "hub.verify_token": "$input.params('hub.verify_token')",
  "hub.challenge": "$input.params('hub.challenge')",
  "hub.mode": "$input.params('hub.mode')"
}

デプロイ

  • アクション ⇨ APIのデプロイ
    スクリーンショット 2018-03-30 午後19.24.35 午後.png

  • ステージ名:任意でデプロイ
    スクリーンショット 2018-03-30 午後19.24.58 午後.png

カスタムアプリのwebhook登録

  • workplaceから事前に作成してあるカスタムアプリケーションのページにいき下記設定完了のち保存
    • コールバックURL:api gatewayでデプロイしたURL
    • トークン:自分が任意で設定した VERIFY_TOKEN スクリーンショット 2018-03-30 午後19.47.39 午後.png

完了.

機能の開発はそれぞれでやってくださいまし

参考