2017-01-16 3 views

Répondre

0

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.

+0

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

+0

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

4

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

Est-ce que ça marche? –

+0

@UriAbramson Oui, laissez-moi savoir si vous avez des questions sur la mise en œuvre –

0

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.