Я пытаюсь проверить содержимое полезных данных webhook из API Graph Instagram, используя шаги в документации для разработчиков Facebook .
Кажется, я не могу создать соответствующий ха sh, несмотря на выполнение всех шагов в документах. Чтобы было ясно, мой код успешно создает ha sh, он просто не соответствует тому, который Facebook отправляет с помощью webhook.
Мой код находится ниже (с фиктивными значениями, используемыми для секрета и полезной нагрузки приложения) содержание). Любая помощь будет принята с благодарностью.
const crypto = require('crypto')
// Escape special characters
const escapeUnicode = str => {
return str.replace(/[\u00A0-\uffff]/gu, function (c) {
return "\\u" + ("000" + c.charCodeAt().toString(16)).slice(-4)
})
}
// Dummy values
const payload = {
"object": "instagram",
"entry": [
{
"id": "some-id",
"time": 1234567890,
"changes": [
{
"value": {
"media_id": "some-id",
"impressions": 0,
"reach": 0,
"taps_forward": 0,
"taps_back": 0,
"exits": 0,
"replies": 0
},
"field": "story_insights"
}
]
}
]
}
// Create hash
const hmac = crypto.createHmac('sha1', 'my-app-secret')
hmac.update(escapeUnicode(JSON.stringify(payload)))
const hash = `sha1=${hmac.digest('hex')}`