Ich habe mehr Facebook-Seiten, und ich möchte die gleiche Bot auf jeder Seite laufen. Ich bin mit dem Bot-Framework und alles funktioniert perfekt für eine Seite jetzt. Wie kann ich mit mehreren Seiten assoziieren?
Wie kann ich die gleiche Bot auf mehr Facebook-Seiten bieten Framework
Jede Seite braucht seine eigene Facebook-Anwendung. Sobald Sie Ihre Anwendungen erstellt haben, können Sie sie auf den gleichen Bot verknüpfen, aber sie werden eine andere Seite Token verwenden, falls das Sie die Signatur in Ihrem Code validieren und wahrscheinlich wollen Sie für jeden von ihnen eine andere URL verwenden.
Wenn Sie die Facebook - API senden aufrufen, übergeben Sie eine Seite Zugriffstoken durch den access_tokenParameter. Sie können diesen Zugriffstoken , welche Seite richten Sie Ihre Nachricht angeben , indem Sie ändern. Um zu wissen , welche Seite die Nachricht ausgelöst, können Sie den Zugriff auf idFeld des Eintrags der Nachricht senden.
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
...
Sie müßten dann eine Objektzuordnung Seite IDs zu den Zugriffstoken mit jeder Seite ID verbunden halten:
const accessTokens = {
myPageId1: 'myPageAccessToken1',
myPageId2: 'myPageAccessToken2',
}
Dann, wenn die Antwort zu senden, geben Sie einfach die entsprechende Seite 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,
})
Die Art, wie ich damit umgehen würde, ist den gleichen Bot-Backend auf einem anderen Server zu implementieren. Dadurch werde habe ich die gleiche Backend-Quelle, aber unterschiedliche Webhook URL. Das macht jede Bot, obwohl eine ähnliche Funktionalität, separat isoliert und gepflegt werden. Dies ist äußerst ein wichtiges Design Überlegung bei der ein Bot zu bauen, weil es möglicherweise viele Gespräche haben kann.
Um Ihre Frage zu beantworten, ja dann ist es möglich, nur das Bestehen der Seite Token und Prüfkarte für jede Anforderung und es ändern, wenn ein Benutzer umgekehrt mit der anderen Seite - aber ich weiß nicht empfehle es auf diese Weise zu tun.
Sie können gleiche Anwendung auf mehrere Seiten abonnieren. Sobald der Facebook-App des mit dieser App zugeordnet Bote abonniert würde mit der Seite verbunden sein.
https://developers.facebook.com/docs/graph-api/reference/page/subscribed_apps/ wird diese api hinzufügen Facebook - Anwendung auf einer Seite verwendet
Sorry, wenn meine Antwort spät
Sie können sehr gut Ihre Seite Verkehr durch nur einen Bot-Backend Griff
- Erstellen Sie eine fb App und wählen Sie Produkt als Bote
- In WeBook Config zeigt auf Ihren Bot
- Wählen Sie alle Seiten, die Sie wollen, eins nach dem anderen zu verbinden und die Seite Zugriff halten Token praktisch.
- Geh hin und Seiten-ID in Ihrer fb Seite suchen und hält es praktisch
- Entweder in konstanten oder dB-Seite Zugriffstoken gegen die Seite halten würde ich
- Wenn Sie erhalten einen Rückruf auf Webhook Sie eine Seite Eintrag erhalten und Id == Seiten-ID
- Basierend auf Seite würde ich Ihre Business-Logik haben
- Rufen Sie api verwenden Seite Zugriffstoken senden, die Sie againtst der Seiten-ID gespeichert haben
Hoffe das hilft













