MyDocs

# SlackのスラッシュコマンドをLambdaで受け取る

構成は、slack => API Gateway => Lambda。

event を Decode する必要がある。

func Handler(event events.APIGatewayProxyRequest) (Response, error) {
	if err := ensureDecode(&event); err != nil {
		panic(err)
	}
	fmt.Println(event.Body)
}

func ensureDecode(event *events.APIGatewayProxyRequest) error {
	if event.IsBase64Encoded {
		body, err := base64.StdEncoding.DecodeString(event.Body)
		if err != nil {
			return err
		}
		event.Body = string(body)
		event.IsBase64Encoded = false
	}
	return nil
}