Jeg har flere Facebook-sider, og jeg ønsker å kjøre samme bot på hver side. Jeg bruker bot rammeverket og alt fungerer perfekt for en side nå. Hvordan knytte jeg med flere sider?
Hvordan kan jeg bruke den samme bot på flere Facebook-sider ved hjelp bot rammeverk
Hver side må ha en egen facebook applikasjon. Når du har opprettet programmene dine kan du koble dem til samme bot, men de vil bruke en annen side token i tilfelle at du validere signaturen i koden din og sannsynligvis du ønsker å bruke en annen url for hver av dem.
Når du ringer Facebook Send API, passerer du en side tilgangstoken gjennom access_tokenparameter. Du kan angi hvilken side som skal lede meldingen ved å endre denne tilgangen token. For å vite hvilken side initiert meldingen, kan du få tilgang til idfeltet for oppføring av meldingen innlegget.
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
...
Du vil da trenge å opprettholde et objekt kartlegging side IDer til tilgangs token knyttet til hver side id:
const accessTokens = {
myPageId1: 'myPageAccessToken1',
myPageId2: 'myPageAccessToken2',
}
Så når du sender svar, bare angi den tilsvarende siden 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,
})
Måten jeg ville håndtere dette på er å ta i bruk det samme Bot backend på en annen server. Med dette vil jeg ha samme backend kilde, men forskjellige webhook URL. Dette gjør hver Bot, skjønt tilsvarende funksjonalitet, kan isoleres og opprettholdes separat. Dette er ekstremt viktig design vurdering når du bygger et Bot fordi det kan potensielt ha mye samtaler.
For å svare på spørsmålet ditt, ja det er mulig ved bare passerer på siden token og validering token for hver forespørsel og endre det når en bruker snakke med den andre siden - men jeg anbefaler ikke å gjøre det på denne måten.
Du kan abonnere samme app på flere sider. Når facebook app abonnerer budbringeren forbundet med at app ville bli assosiert med siden.
https://developers.facebook.com/docs/graph-api/reference/page/subscribed_apps/ dette api brukes til å legge facebook applikasjon på en side
Beklager hvis mitt svar er sent
Du kan godt håndtere all din side trafikken gjennom bare en bot backend
- Opprett en fb app og velg produktet som budbringer
- Legg webook config peker til boten
- Velg alle sidene du vil knytte én etter én og holde siden tilgangstokenet hendig.
- Gå og søk page id i fb side og ha den tilgjengelig
- Enten i konstant eller dB opprett side tilgangstoken mot siden jeg hadde
- Når du får en tilbakeringing på webhook du får en side oppføring og Id == side id
- Basert på siden jeg vil ha din forretningslogikk
- Ring sende api bruke Adgang token som du har lagret againtst siden id
Håper dette hjelper













