1

我有一个应用程序,用户可以使用Facebook登录。我有用户的身份验证令牌,有效期为30天。我正在使用护照。目前,我需要绝对最低限度的权限(仅限电子邮件),以便我的身份验证应用程序不需要验证。Facebook chatbot和身份验证

现在...我需要写一个聊天机器人,偶尔会写入用户身份验证。所以,机器人需要发起对话。它实际上是用户积极关注的通知。

鉴于我知道如何编写聊天机器人本身,我想知道......这样做甚至有可能吗?

如果这是不可能的,是否可以“链接”,然而通过比较他们的Facebook用户ID来启动与我的机器人与其中一个登录用户的聊天? (我恐怕不会,因为Facebook的用户ID似乎是应用程序的范围)

+0

https://developers.facebook.com/docs/messenger-平台/策略概述 - “特定用例的订阅消息(测试版)” – CBroe

回答

1

1)为了可靠地向用户发送消息,通过用户交互自发发送消息,您将需要来自FB的订阅消息传递权限,目前它处于限制测试阶段。

Subscription Messaging仅限于来自News,Personal Tracker和Productivity类别中的应用的非广告消息。如果您的机器人符合这些类别之一,您可以获得权限以执行您想要的操作。

如果没有,您仍然可以向用户发送通知,但每次需要引发他们的响应(按下按钮,文字响应)以获得超出标准消息传递24小时限制的其他消息。这些消息可以是促销。

2)获取用户的页面作用域ID时,如果您有其用户ID用于其他应用程序或页面,请使用ID匹配API。

您必须创建一个FB Business帐户(如果您还没有帐户)并将您的应用程序和页面与业务关联,请按照ID Matching API Docs中的指南操作。

要获得所有页面范围的ID对您的企业帐户拥有的网页,当你有一个用户的应用程序ID(从FB登录,作为一个例子),你会提出以下要求的图形API:

GET /{user-id}/ids_for_pages 
    ?access_token=[app_access_token] 
    &appsecret_proof=[appsecret_proof] 

您会收到类似这样的响应,包含页面范围的指定用户的ID的每一页您的企业帐户拥有:

"data": [ 
     { 
     "id": "12345123", // The psid for the user for that page 
     "page": { 
      "category": "Musician", 
      "link": "https://www.facebook.com/Johns-Next-Great-Thing-380374449010653/", 
      "name": "John's Next Great Thing", 
      "id": "380374449010653" 
     } 
     } 
    ]