こんにちは。@kyo_agoです。 最近ChatWorkのWebhookがGoogle Apps Script (以下GAS)でリクエストの検証できるようになったので紹介したいと思います。 なぜ検証が必要なのか Webhookは認証等無しでリクエストが送られてくるため、URLが漏洩すると外部から任意のリクエストを送ることが可能になってしまいます。 ChatWorkではその対策のため、WebhookのリクエストHTTP Headerにリクエストの署名をつけています。 GASでWebhookを受け取る場合もこの署名を検証する必要があるのですが、現在のGASの仕様ではdoPostで送られてきたリクエストのHTTP Headerを受け取る方法がないため署名の検証が行えません。 そのため先日ChatWork側で、HTTP HeaderだけではなくQueryStringにも署名を追加するように変更を行