Smartsheet がコールバック URL に POST リクエストを行うたびに、Smartsheet の Webhook API を検証しようとしています。誰もこれを以前に使用したことがありますか?
コールバック URL への呼び出しが行われるたびに、POST 要求が Smartsheet からのものであることを確認する必要があります。
こちらのガイドに従ってください:
To authenticate a callback request:
1. Calculate the HMAC of the webhook's sharedSecret and the request body.
This must be done using the SHA-256 cryptographic hash algorithm.
2. Format the calculated value as a string in base 16.
3. Compare your result with the value of the Smartsheet-Hmac-SHA256 header of the request.
私はJavascriptを使用しています。ハッシュを生成できました。私はいくつかのアプローチを試みましたが、どれもうまくいきませんでした。ベストプラクティスと私が以前に取り組んだことから、これはうまくいくはずです:
crypto.createHash('sha256', sharedSecret).update(JSON.stringify(body)).digest('hex');
しかし、そうではありません。私もこれを試しました:
crypto.createHash('sha256').update(sharedSecret+JSON.stringify(body)).digest('hex');
動いていない。
ここでの body 変数は、Smartsheet がコールバック URL に送信するペイロードの req.body からのものです。sharedSecret は、Webhook を作成したときに Smartsheet によって提供されたシークレットです。