如何与用户名,用户域ID等用户数据开始对话

时间:2018-01-31 19:10:14

标签: botframework direct-line-botframework

我需要开发一个现有应用程序的增强功能,该应用程序将与使用MS bot框架开发的机器人进行交互。为此,我正在考虑使用直接通道。但是,我不明白,我如何将用户特定信息从应用程序传递给机器人。

https://docs.microsoft.com/en-us/bot-framework/rest-api/bot-framework-rest-direct-line-3-0-send-activity提供的文件中, 提到REST请求的有效负载是

{
    "type": "message",
    "from": {
        "id": "user1"
    },
    "text": "hello"
}

我应该在哪里传递用户特定用户或会话信息,例如用户名,姓氏,电子邮件ID或登录ID,或启动用户发起聊天或其他任何位置的应用或位置?

任何指导都会有所帮助。

1 个答案:

答案 0 :(得分:0)

  

如何使用用户名,用户域ID

等用户数据开始对话

正如NicolasR指出的那样,它不能让我们在直线通道上starting a conversation时附加/指定用户信息。

  

如何将用户特定信息从应用程序传递到bot

如果你想发送活动并使用Direct Line API将用户信息(名字,姓氏等)传递给机器人,正如你在that documentation中看到的那样,要将活动发送到机器人,客户端必须创建一个Activity对象来定义活动。您可以参考以下示例请求,以在请求JSON有效负载的from字段中包含用户信息。

enter image description here

在我的机器人应用程序代码(c#)中,我可以使用以下代码片段从Activity对象中提取用户信息。

if (activity.From.Properties["firstname"] != null)
{
    var fname = activity.From.Properties["firstname"].ToString();
}