2016-04-16 1 views
1

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

4

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.

+0

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? –

+0

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

+0

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. –

0

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.

+1

Comment distinguer ce rappel de différentes pages? est-ce que page-id vient avec chaque appel? – Rusty

0

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, 
    })