当我从Facebook Realtime API(webhooks)收到"消息接收回调"事件时,我想要获取对话中的先前消息.为此,我需要会话线程的ID.
https://developers.facebook.com/docs/messenger-platform/webhook-reference/message?locale=en_US
该事件不包含有关会话线程ID(t_id)的任何信息.它只包含消息ID(mid).
https://developers.facebook.com/docs/graph-api/reference/v2.8/conversation
有没有办法获得对话线程ID?
我有facebook messenger应用程序(它是使用MS Bot Framework的机器人,虽然我不认为它是相关的).它有webhook订阅页面事件.它曾经很好地工作到几天前,当webhook从页面取消订阅时,当我尝试再次订阅它告诉我:
"权限不足您没有指定页面执行所请求操作的必要权限."
我是FB页面和Messenger应用程序的所有者和管理员.我创建了类似的页面和信使应用程序,它在那里工作,但我仍然需要使用这个旧的.我尝试订阅我拥有和管理的其他页面,但结果相同.我也和其他管理员一起尝试过.
我发现其他人在FB上遇到相同/相似的消息,但在这种特殊情况下却没有.但我还没有找到任何解决方案.
有谁知道可能是什么问题?或者有没有人遇到过这个问题?
提前感谢任何想法.
facebook messenger facebook-messenger facebook-messenger-bot facebook-webhooks
我是我的测试应用程序和测试页面的管理员.
现在我正在通过webhook实现一个函数get page的feed实时,只是在开发模式下.
当我单击App的仪表板上的测试按钮时,它已被发送到我的webhook.但是当我评论或喜欢...帖子时,即使我订阅了饲料webhook,facebook也不发送.使用消息,它已成功发送,但Feed没有.
我问facebook支持,所以他们说:
"应用程序只能在开发过程中接收从应用程序仪表板发送的测试webhook.除非应用程序处于活动状态,否则不会生成包括应用程序管理员,开发人员和测试人员在内的生产数据.为了接收提要webhooks,你的应用程序需要上线,并且必须通过应用程序审查才能获得必要的权限."
我知道即使它处于开发模式,我也无法从Facebook获取数据.那么我如何才能获得facebook返回的数据来开发,测试...开发模式中的应用程序.
非常感谢.
我是Play Framework的初学者(在这种情况下是2.5和Scala) - 我正在尝试通过为Facebook Messenger建立一个机器人来学习.但是我一直试图验证消息的签名.
我按照Facebook文档编写了一个webhook.它使用处理POST请求getRawMessages(参见下面的代码).然后,它尝试使用该verifyPayload功能验证请求是否由Facebook签名.但是我似乎无法得到计算的和实际的哈希匹配.
我从这个问题中起了带头作用:如何在Java中验证Instagram的实时API x-hub-signature?这似乎做了我想要的,但相当于Instagram.但我似乎仍然无法做对.
val secret = "<facebooks secret token>"
def getRawMessages = Action (parse.raw) {
request =>
val xHubSignatureOption = request.headers.get("X-Hub-Signature")
try {
for {
signature <- xHubSignatureOption
rawBodyAsBytes <- request.body.asBytes()
} yield {
val rawBody = rawBodyAsBytes.toArray[Byte]
val incomingHash = signature.split("=").last
val verified = verifyPayload(rawBody, secret, incomingHash)
Logger.info(s"Was verified? $verified")
}
Ok("Test")
}
catch {
case _ => Ok("Test")
}
}
val HMAC_SHA1_ALGORITHM = "HmacSHA1"
def verifyPayload(payloadBytes: Array[Byte], …Run Code Online (Sandbox Code Playgroud) 我想为我正在开发的应用程序配置Facebook webhooks.
到目前为止我做的是:
现在,当我查询页面订阅时,我得到了响应:
{
"data": [
{
"object": "page",
"callback_url": "CALLBACK_URL",
"fields": [
"feed"
],
"active": true
}
]
}
Run Code Online (Sandbox Code Playgroud)
这似乎是有效的.
接下来我该怎么办?如何从特定页面的Feed开始收听?
我的目标是使用 Facebook webhook 在 IG 用户提及我的 IG 帐户时收到通知。为此,我遵循了以下步骤:
我面临的问题是我无法让我的应用程序处理真实数据。我尝试从我的 IG 个人帐户中提及我的企业 IG 帐户,但没有任何反应。我的回调网址没有被调用。
我的应用程序不需要用户登录,因此我不确定是否需要发送我的应用程序以供审核。我需要特别许可吗?
当另一个用户在另一个/我的媒体上发表评论(提及)时,我无法收到 webhook 调用。
出于测试目的,我为我的 webhook 端点设置了一个 ngrok 服务器,它总是以 200 应答并处理验证。在进行大量编码之前,我只是想看看 Instagram 的 webhook 工作流程是否正常工作。
我创建了一个 Facebook 应用程序、一个 Instagram 企业帐户、一个 Facebook 页面,并将该页面与 Instagram 企业帐户链接。根据Instagram Webhooks上的信息,我使用 Graph API Explorer 创建了页面访问令牌。当我使用访问令牌调试器调试令牌时,一切看起来都很好。所有需要的权限,如manage_pages、pages_show_list、instagram_basic、instagram_manage_comments、instagram_manage_insights、public_profile都在那里。使用页面访问令牌,我可以通过 Graph API Explorer 获取有关我链接的 Instagram 企业帐户的所有信息。
Instagram 产品也自动添加到我的 Facebook 应用程序中。通过应用程序仪表板(Webhooks 产品)发送的测试请求将由我的 ngrok 服务器接收。但是,我的媒体或其他媒体上不会收到来自他人或我的 Instagram 帐户(商业或非商业)的任何类型的提及或评论。我究竟做错了什么?由于应用程序处于开发模式并且应用程序中有角色,我是否必须从特定帐户发送这些评论/提及?
facebook webhooks instagram facebook-webhooks instagram-graph-api
这是我第一次发布问题,因此请提供反馈以改进问题。
Facebook webhook 提到,在 webhook 端点可以接收任何事件通知之前,应首先验证端点。
验证请求的文档未提供 API 的响应结构。它只是告诉我们发回 hub.challenge 参数。
当我使用 NodeJS 时,我正在尝试使用下面的代码。但是,它不会验证来自 Facebook 仪表板的 Webhook。
我们应该如何发回响应来验证 webhook?
app.get('/webhook', (req, res) => {
const challenge = req.query['hub.challenge'];
const verify_token = req.query['hub.verify_token'];
if (verify_token === process.env.FACEBOOK_VERIFICATION_TOKEN) {
return res.status(200).send({message: "Success", challenge: challenge});
}
return res.status(400).send({message: "Bad request!"});
})
Run Code Online (Sandbox Code Playgroud) facebook facebook-ads-api facebook-webhooks facebook-ads facebook-nodejs-business-sdk
我的IDE是Pycharm.我想在本地测试我的应用程序,所以我在本地运行我的服务并使用ngrok将我的应用程序暴露给Internet.
ngrok显示的网址是 https://436cb7e9.ngrok.io
但是,当我想验证facebook webhook回调网址使用上面的这个网址时,它显示
ERROR 2017-12-27 08:16:37,407 wsgi_server.py:329]请求主机436cb7e9.ngrok.io未列入白名单.已设置启用的主机(['localhost'])
我之前运行的应用程序很好,但我不知道为什么这次显示错误.有人能给我一些建议吗?
创建了一个应用程序,并试图创建webhook,但在droplist中,'Page'对象没有显示,只有'User','Application','Permission','Native Components'和'Certificate Transperancy'.
我们如何为Page对象创建webhook?
我有一个订阅了 20,000 多个页面的 Facebook 应用程序。服务器无法处理来自所有这些 Facebook 页面的钩子,我想从所有这些 Facebook 页面取消订阅我的应用程序。有没有更快的方法来做到这一点。我拥有的大部分页面访问令牌都已过期,因此我无法遍历所有页面并取消订阅我的应用程序。
facebook ×8
webhooks ×3
python ×2
facebook-ads ×1
facebook-nodejs-business-sdk ×1
instagram ×1
messenger ×1
pycharm ×1
scala ×1