У меня есть общий вопрос относительно установки «бота» в платформе Facebook Messenger. Если я правильно понимаю архитектуру, я могу создать приложение в качестве разработчика, добавить функцию Messenger и связать 1 страницу с функцией Messenger. Означает ли это, что мне нужно приложение для каждой страницы? Или я мог бы создать «бот-сервер», обслуживающий несколько/разных страниц от разных пользователей?Настройка платформы Facebook Messenger
ответ
Да, у вас может быть один робот, обслуживающий несколько страниц. Вам просто нужно установить < token> для разных страниц в вызове API, here - это настройка для страницы. От documentation:
Графический API требует токенов доступа к странице для управления страницами Facebook. Они уникальны для каждой страницы, администратора и приложения и имеют срок действия.
Fritak верный. Вы можете использовать одно приложение для нескольких страниц. Для каждой страницы вам нужно будет подписаться на эту страницу на эту страницу и создать маркер доступа к странице специально для этой страницы. На вашем веб-узле вам нужно будет отличить обратные вызовы для конкретной страницы.
Как отличить этот обратный вызов от разных страниц? Идет ли идентификатор страницы с каждым звонком? – Rusty
При получении запроса, необходимо отобразить входящий идентификатор страницы в маркер доступа, как описано в этом ответе: How can I use the same bot on multiple facebook pages using bot framework
app.post('/webhook', (req, res) => {
const data = req.body
// Make sure this is a page subscription
if (data.object === 'page') {
// Iterate over each entry
data.entry.forEach((pageEntry) => {
// get the pageId
const pageId = pageEntry.id
...
const accessTokens = {
myPageId1: 'myPageAccessToken1',
myPageId2: 'myPageAccessToken2',
}
const callSendAPI = (pageId, messageData) =>
rp({
uri: 'https://graph.facebook.com/v2.8/me/messages',
qs: { access_token: accessTokens[pageId] },
method: 'POST',
body: messageData,
json: true,
})
Означает ли это, что пользователь будет видеть новый разговор для каждой страницы и что этот разговор можно полностью настроить в зависимости от контекста страницы? –
Да, у вас нет отдельного чата «бот». Вы должны «подписаться» на определенную страницу, а затем в каждом сообщении с facebook вы должны установить токен для этой страницы. – fritak
Рекомендуется проверить подпись запроса, чтобы убедиться, что обратный вызов поступает со страницы facebook. Здесь используется приложение Secret, поэтому убедитесь, что вы учитываете это при обслуживании нескольких страниц. –