J'ai plusieurs pages facebook et je voudrais courir le même bot sur chaque page. J'utilise le framework bot et tout fonctionne parfaitement pour une page maintenant. Comment associer plusieurs pages?Comment puis-je utiliser le même bot sur plusieurs pages facebook en utilisant le framework bot
Répondre
Chaque page nécessite sa propre application facebook. Une fois que vous avez créé vos applications, vous pouvez les lier au même bot mais elles utiliseront un jeton de page différent si vous validez la signature dans votre code et que vous souhaitez probablement utiliser une URL différente pour chacune d'entre elles.
Lorsque vous appelez le Facebook Envoyer API, vous passez un jeton d'accès à la page via le paramètre access_token
. Vous pouvez spécifier quelle page diriger votre message en modifiant ce jeton d'accès. Pour savoir quelle page a déclenché le message, vous pouvez accéder au champ id
de l'entrée du message.
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
...
Vous aurez alors besoin de maintenir une page mapping objet ids au jeton d'accès associé à chaque identifiant de page:
const accessTokens = {
myPageId1: 'myPageAccessToken1',
myPageId2: 'myPageAccessToken2',
}
Puis lors de l'envoi de la réponse, il suffit de spécifier la page correspondante 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,
})
Est-ce que ça marche? –
@UriAbramson Oui, laissez-moi savoir si vous avez des questions sur la mise en œuvre –
la façon dont je le gérer est de déployer le même backend Bot sur un autre serveur. Par ceci, j'aurai la même source de backend mais l'URL différente de webhook. Cela rend chaque Bot, bien que similaire, peut être isolé et maintenu séparément. Ceci est extrêmement important lors de la conception d'un Bot, car il peut potentiellement avoir beaucoup de conversations.
Pour répondre à votre question, oui, il suffit de passer le jeton de page et le jeton de validation pour chaque requête et de le changer lorsqu'un utilisateur conversera avec l'autre page - mais je ne le recommande pas.
Vous pouvez vous abonner même application à plusieurs pages. Une fois l'application facebook souscrite, le messager associé à cette application sera associé à la page.
https://developers.facebook.com/docs/graph-api/reference/page/subscribed_apps/ ce api est utilisé pour ajouter une application facebook à une page
j'ai une application facebook approuvée, je veux utiliser ce bot pour une page i DONOT propre, j'ai l'identification et le numéro de jeton de cette page, mais je suis incapable d'utiliser mon bot. Comment fait-on ça? –
c'est faux, vous pouvez utiliser une application sur autant de pages que vous le souhaitez. vous n'avez pas besoin d'une application distincte pour chaque page. – luschn