in services/graph-api.js [57:97]
static async callSubscriptionsAPI(customFields) {
// Send the HTTP request to the Subscriptions Edge to configure your webhook
// You can use the Graph API's /{app-id}/subscriptions edge to configure and
// manage your app's Webhooks product
// https://developers.facebook.com/docs/graph-api/webhooks/subscriptions-edge
console.log(
`Setting app ${config.appId} callback url to ${config.webhookUrl}`
);
let fields =
"messages, messaging_postbacks, messaging_optins, " +
"message_deliveries, messaging_referrals";
if (customFields !== undefined) {
fields = fields + ", " + customFields;
}
console.log({ fields });
let url = new URL(`${config.apiUrl}/${config.appId}/subscriptions`);
url.search = new URLSearchParams({
access_token: `${config.appId}|${config.appSecret}`,
object: "page",
callback_url: config.webhookUrl,
verify_token: config.verifyToken,
fields: fields,
include_values: "true"
});
let response = await fetch(url, {
method: "POST",
headers: { "Content-Type": "application/json" }
});
if (response.ok) {
console.log(`Request sent.`);
} else {
console.error(
`Unable to callSubscriptionsAPI: ${response.statusText}`,
await response.json()
);
}
}