Facebook Webhook Messenger 获取页面 ID

Posted

技术标签:

【中文标题】Facebook Webhook Messenger 获取页面 ID【英文标题】:Facebook Webhook Messenger get Page ID 【发布时间】:2021-12-19 02:19:09 【问题描述】:

我正在使用 Facebook 的 messenger webhook 和监听 API,它们有时也可能会响应(机器人)。 确定 webhook 来自哪个页面 ID 很重要(因为某些页面会使用它)。据我了解,我尝试搜索参数、标题和正文。

我是否应该解密 X-Hub-Signature 以确定哪些数据可能会影响页面 ID?

这是标题:


   "Host":"**xxxx-xxxx-xxxx-xx-x-xxxx-xxxx-xxxx-xxxx.ngrok.io**",
   "User-Agent":"facebookexternalua",
   "Content-Length":"308",
   "Accept":"\/",
   "Accept-Encoding":"deflate, gzip",
   "Content-Type":"application\/json",
   "Facebook-Api-Version":"v12.0",
   "P-Mi-Om":"FgIA",
   "X-Forwarded-For":"**xxxx:xxxx:xxxx:xx::face:b00c**",
   "X-Forwarded-Proto":"https",
   "X-Hub-Signature":"sha1=**xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx**"

回复:


   "object":"page",
   "entry":[
      
         "id":"xxxxxxxxxxxxxxx",
         "time":1636101951119,
         "messaging":[
            
               "sender":
                  "id":"xxxxxxxxxxxxxxx"
               ,
               "recipient":
                  "id":"xxxxxxxxxxxxxxx"
               ,
               "timestamp":1636101950853,
               "message":
                  "mid":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
                  "text":"hey"
               
            
         ]
      
   ]

【问题讨论】:

不,当然你不应该“解密”那个签名——因为从技术上来说这是不可能的,它是一个 hash 值。 "Here are the headers" - 数据在正文中... 添加了响应正文。这里没有页面 ID... 应该是发送者或接收者ID,不是吗? 【参考方案1】:

它在响应中,作为 recipient id 变量。

【讨论】:

以上是关于Facebook Webhook Messenger 获取页面 ID的主要内容,如果未能解决你的问题,请参考以下文章

Facebook 向 webhook 发送空 POST

Facebook API页面提要没有向我的webhook发送信息?

Rocket.Chat 传入 Webhook:以特定响应回答(用于 facebook 集成)

markdown 在Webhook上接收Facebook主页

Facebook Messenger 的 Webhook 不验证 Laravel5.4

Facebook Webhook Messenger 获取页面 ID