Closed3

slackbot, spreadsheet連携

こまきちこまきち

slack apiでAppを作成するときは、App Nameを英語で作成しないと連携不可になる(特にエラーも出ずに詰む)

こまきちこまきち

slack APIのSubscription

Lambda+API Gateway構成で、特定のアクションに対してAPIを呼ぶようにすると2回リクエストが送られる事象を発見した。
どうやらコールドスタートか何かのタイミングでリトライ処理が走り、2回送られてる?

後から動作されても困る(どうせもう一回そのアクションすればいいだけ)ので、リトライが走らないように強制的にHTTPステータスを200にして返すことにした。

def lambda_handler(event, context):

    try:
        body = json.loads(event['body'])

        # slackのチャレンジリクエスト用
        if 'challenge' in body:
            return {
                'statusCode': 200,
                'body': body['challenge']
            }

        if 'event' in body:
            event_data = body['event']

            # 何かしらの処理

    except Exception:
        logger.exception("Error processing event")

    finally:
        # 常に200 OKを返すことで、Slackによるリトライを防止
        return {
            'statusCode': 200,
            'body': ''
        }
このスクラップは1ヶ月前にクローズされました