1

我有一个关于 Facebook Messenger 平台中“机器人”设置的一般性问题。如果我理解架构正确,我可以创建一个应用程序作为开发人员添加 Messenger 功能并将 1 Page 与 Messenger 功能相关联。这是否意味着我每个页面都需要一个应用程序?或者我可以创建一个“机器人后端”,为来自不同用户的多个/不同页面提供服务?

4

3 回答 3

4

是的,您可以让一个机器人服务于多个页面。您只需要在 API 调用中为不同的页面设置 < token >,这里是为一个页面设置的。从文档

Graph API 需要页面访问令牌来管理 Facebook 页面。它们对于每个主页、管理员和应用程序都是唯一的,并且具有过期时间。

于 2016-04-16T15:00:57.450 回答
0

当您收到请求时,您需要将传入的页面 id 映射到访问令牌,如此答案中所述: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,
     })
于 2017-09-07T03:54:10.170 回答
0

弗里塔克是正确的。您可以将一个应用程序用于多个页面。对于每个页面,您必须将应用程序订阅到该页面并专门为该页面生成页面访问令牌。在您的 webhook 中,您必须区分特定页面的回调。

于 2016-04-28T17:03:14.530 回答