我试图为我的客户实施Facebook Checkbox,但我意识到必须订阅messenging_optins
事件才能呈现Facebook checkbox。因此,我尝试以编程方式订阅messaging_optins
事件。
请注意,我的Facebook应用程序在开发应用程序中。所以实际上,我仍然在我的Facebook帐户上进行测试。
curl -i -X POST "https://graph.facebook.com/v3.2/{my-customer-page-id}/subscriptions?access_token={my_app_access_token}&callback_url=https%3A%2F%2Fmy-server.ngrok.io%2Fwebhook%2Ffacebook&fields=messaging_optins&object=page&verify_token=abc123abc123456"
响应为{"success":true}
但是,在手动转到Facebook Developer设置并订阅以下屏幕截图所示的页面之前,我的Facebook Checkbox仍然无法使用。
我意识到上面的curl
命令只是帮助我订阅了Page Webhook(不是Messenger webhook)事件,如下图所示。
有人可以指出为什么我不能订阅“ Messenger事件”,但是Facebook graph API返回它已成功订阅吗?
谢谢。
答案 0 :(得分:0)
挖掘Facebook文档1天后,尝试使用Facebook Graph Explorer测试许多案例,我终于找到了以编程方式订阅Page的Webhook的方法。
在Facebook Docs中,它这样写了3行
Messenger的Webhooks允许您在发生各种交互或事件(包括某人发送消息)时接收实时通知。 Messenger的Webhook与其他Webhook略有不同,因此在设置这种类型的Webhook时,请使用Webhooks for Messenger docs。
这是我订阅messages
,messaging_postbacks
,messaging_optins
,message_reads
事件的方式。请参阅:https://developers.facebook.com/docs/graph-api/webhooks/getting-started/webhooks-for-pages
curl -i -X POST "https://graph.facebook.com/v3.2/{page-id}/subscribed_apps?access_token={page-access-token}&subscribed_fields=messages,messaging_postbacks,messaging_optins,message_reads"
答案 1 :(得分:0)
Facebook Graph API具有一个Subscriptions
端点,可用于为图形网络的对象(例如page
,user
等)设置Webhooks。
您需要向订阅端点发出POST
请求,并提供所需的参数,这些参数是:
object
您要预订其Webhook的对象callback
是可公开访问的URL,当订阅的事件被触发时,Facebook将在其中发送webhook事件数据(例如,您的page
收到一条消息)fields
您要订阅的字段列表(例如messages
)verify_token
,Facebook会将此令牌发送到您的回调URL,以便您可以验证它来自Facebook,而不是某些用于处理Webhook回调的恶意源see this guide。access_token
您的应用访问令牌
这是official docs curl -F "object=user" \
-F "callback_url=https://your-clever-domain-name.com/webhooks" \
-F "fields=photos" \
-F "verify_token=your-verify-token" \
-F "access_token=your-app-access-token" \
"https://graph.facebook.com/your-app-id/subscriptions"
如果成功,响应将是
{
"success": "true"
}
要查看您的订阅,请向此HTTP端点发送一个GET
请求
https://graph.facebook.com/your-app-id/subscriptions?access_token=your-app-access-token
返回这样的响应
{
"data": [
{
"object": "user",
"callback_url": "https://your-clever-domain-name.com/webhooks",
"active": true,
"fields": [
{
"name": "photos",
"version": "v2.10"
},
{
"name": "feed",
"version": "v2.10"
}
]
}
]
}