0

我有一种情况,最初将通过我在 .NET 中构建的 Web 界面进行对话。这将调用 API.AI 聊天机器人并返回下一个问题供用户回答。我们将所有答案保存在 SQL Server 数据库中,并且运行这些问题的每个对话都使用唯一的事务 ID 保存到数据库中,以便我们稍后可以返回。

在任何时候,用户都可以在 Facebook Messenger 中继续他们的对话。我们不会将之前的对话复制到 Messenger,但对话的其余部分将在 Messenger 中,通过 Webhook 发布给我们,然后传递到 API.AI 并保存到我们的数据库中。

我已经阅读了 Facebook 文档,但是我看不到任何在 Facebook 和我的数据库之间传递我自己的对话 ID 的方法。

是否可以通过 Facebook JSON 为 Webhooks API 指定自定义元数据,从而保持我们这边生成的 ID 和 Messenger 中正在进行的聊天之间的链接?

我希望能够从 Facebook 收到类似于以下 JSON 的内容(请注意自定义字段“ConversationID”。

{
    "object":"page",
    "entry":[
        {
            "id":"PAGE_ID",
            "time":1458692752478,
            "ConversationID": "89032478923423",
            "messaging":[
                {
                    "sender":{
                    "id":"USER_ID"
                },
                "recipient":{
                    "id":"PAGE_ID"
                },
            }
        ]
    }
]

}

4

1 回答 1

1

看看该metadata字段和echo 回调

当您向用户发送消息时,您可以使用自定义元数据填充metadata字段内的message字段。当您的 webhook 被订阅时message-echo,它将收到一条包含元数据的消息。

于 2017-07-01T12:38:58.367 回答