1

我正在使用 bottender 和 nodejs 创建一个 bot messenger,但是当我尝试在我的页面中检索(管理员或编辑器)的用户 ID 以了解谁向页面中的用户发送响应时,我遇到了问题。这就是我得到的:

{ sender: { id: '868761280555360' },
  recipient: { id: '787381751469' },
  timestamp: 1515780811774,
  message: 
   { is_echo: true,
     mid: 'mid.$cAAUU4wBJk8VnHNjz_lg65PqOOZXZ',
     seq: 361916,
     text: 'hi' } }

sender : 是页面的 id,而不是管理员 id。

收件人:联系页面的用户 ID。

任何人都知道如何获取页面的发件人 ID(管理员或编辑器),而不是使用 bottender 获取页面 ID。

4

2 回答 2

2

消息是从实际页面发送的。即使有管理员或编辑发送消息,他使用的是页面的身份,因此无法检测到谁实际发送了消息。

您可以告诉您的管理员或编辑在消息中使用签名。拆分消息并获取管理员的姓名。

于 2018-01-12T22:02:46.110 回答
1

正如 facebook 官方文档所述,您将无法在页面后面获取发件人,这是一个接收短信 webhook 事件示例:

{
  "sender":{
    "id":"<PSID>"
  },
  "recipient":{
    "id":"<PAGE_ID>"
  },
  "timestamp":1458692752478,
  "message":{
    "mid":"mid.1457764197618:41d102a3e1ae206a38",
    "text":"hello, world!",
    "quick_reply": {
      "payload": "<DEVELOPER_DEFINED_PAYLOAD>"
    }
  }
}   

参考:
https://developers.facebook.com/docs/messenger-platform/reference/webhook-events/messages https://developers.facebook.com/docs/messenger-platform/reference/webhook-events/message-echoes

顺便说一句,您可以随时检查使用 bottender 时收到的 rawEvent,使用context.event.rawEvent. 有时会有所帮助。

于 2018-09-17T11:38:42.850 回答