J'ai une question générale concernant la configuration d'un "bot" dans la plate-forme Facebook Messenger. Si je comprends bien l'architecture, je peux créer une application en tant que développeur, ajouter la fonction Messenger et associer 1 Page avec la fonction Messenger. Est-ce que cela signifie que j'ai besoin d'une application pour chaque page? Ou pourrais-je créer un "bot backend" desservant des pages multiples/différentes provenant d'utilisateurs différents?Facebook Messenger Platform Setup
Répondre
Oui, vous pouvez avoir un robot desservant plusieurs pages. Vous avez juste à mettre < jeton> pour les différentes pages dans l'appel API, here est configuré pour une page. A partir de documentation:
L'API graphique nécessite des jetons d'accès aux pages pour gérer les pages Facebook. Ils sont uniques à chaque page, administrateur et application et ont une durée d'expiration.
Fritak est correct. Vous pouvez utiliser une application pour plusieurs pages. Pour chaque page, vous devrez souscrire l'application à cette page et générer un jeton d'accès à la page spécifiquement pour cette page. À votre webhook, vous devrez distinguer les rappels pour la page spécifique.
Comment distinguer ce rappel de différentes pages? est-ce que page-id vient avec chaque appel? – Rusty
Lorsque vous recevez une demande, vous devez mapper l'identifiant page entrant vers le jeton d'accès tel que décrit dans cette réponse: 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,
})
Est-ce que cela signifie que l'utilisateur verrait un nouvelle conversation pour chaque page, et que cette conversation pourrait être entièrement personnalisée en fonction du contexte de la page? –
Oui, vous n'avez pas de discussion "bot" séparée. Vous devez vous "abonner" à une page spécifique, puis dans chaque communication avec facebook, vous devez définir un jeton pour cette page. – fritak
Il est recommandé de vérifier la signature de la demande pour s'assurer que le rappel provient de la page Facebook. Ici, le secret d'application est utilisé, alors assurez-vous d'en tenir compte lors de la diffusion de plusieurs pages. –