Подтверждение полезной нагрузки из Facebook webhook - PullRequest
0 голосов
/ 26 марта 2020

Я пытаюсь проверить содержимое полезных данных 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')}`
...