У меня есть несколько страниц facebook, и я хотел бы выполнить ту же личинку на каждой странице. Я использую рамки бота и все работает отлично на одной странице теперь. Как связать с несколькими страницами?
Как я могу использовать тот же бот на нескольких страницах facebook с помощью рамки бота
Каждая страница должна собственное приложение facebook. После создания приложения вы можете связать их с тем же ботом, но они будут использовать другой маркер страницы в случае, если вы проверяющая подпись в коде и, возможно, вы хотите использовать другой URL для каждого из них.
Когда вы вызываете Facebook Отправить API, вы передаете маркер доступа к странице через access_tokenпараметр. Вы можете указать , какие страницы направить свое сообщение, изменяя этот маркер доступа. Чтобы узнать , какие страницы инициировал сообщение, вы можете получить доступ к idобласти вступления в должность сообщения.
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
...
Затем нужно будет поддерживать отображение объекта страницы идентификаторы в маркер доступа, связанный с каждой страницей ID:
const accessTokens = {
myPageId1: 'myPageAccessToken1',
myPageId2: 'myPageAccessToken2',
}
Затем при отправке ответа, просто указать соответствующую страницу access_token
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,
})
То, как я бы справиться с этим, чтобы развернуть тот же Bot бэкенд на другом сервере. К этому, у меня будет один и тот же источник бэкэнда, но разный webhook URL. Это делает каждый Bot, хотя подобную функциональность, может быть выделено и поддерживаются отдельно. Это очень важное соображение дизайна при создании бота, поскольку он потенциально может иметь много разговоров.
Чтобы ответить на ваш вопрос, да, это возможно, просто передавая страницы маркеров и проверки маркеров для каждого запроса и изменить его, когда пользователь обратный с другой страницей - но я не рекомендую делать это таким образом.
Вы можете подписаться же приложение на несколько страниц. После того, как приложение facebook подписано гонец, связанный с этим приложением будет ассоциирован со страницей.
https://developers.facebook.com/docs/graph-api/reference/page/subscribed_apps/ этот апи используется для добавления приложения facebook на странице
Извините, если мой ответ запаздывает
Вы можете очень хорошо обрабатывать все ваши страницы трафик только через один бот бэкэндом
- Создать приложение Fb и выберите продукт в качестве посланника
- Добавить webook конфигурацию, указывающий на бот
- Выберите все страницы, которые вы хотите связать один за другим и сохранить доступ к странице маркера под рукой.
- Пойди и искать идентификатор страницы на страницу фб и держать его под рукой
- Либо в постоянном или дБ поддерживать маркер доступа к странице на страницы, которую я
- Когда вы получите обратный вызов на webhook вы получаете запись страницы и Id == идентификатор страницы
- Основываясь на странице я бы бизнес-логику
- Вызов отправить апи, используя маркер доступа к странице, которую вы сохраненные againtst страницы ид
Надеюсь это поможет













