如何从bot发送隐藏链接

时间:2018-05-26 19:37:33

标签: botframework bots

我需要重定向用户。用户发送消息:"显示我的个人资料",bot发送隐藏的链接并将其重定向到个人资料页面。

现在我正在使用backchannel:

botConnection.activity$
    .subscribe(activity => redirect(activity.value))

但这意味着,该用户可以看到带有来自bot的链接的消息,并且只有在该用户被重定向之后。如何向用户隐藏此消息?

1 个答案:

答案 0 :(得分:2)

  

我需要重定向用户。用户发送消息:“显示我的个人资料”,机器人发送隐藏的链接并将其重定向到个人资料页面。

正如您所提到的,backchannel mechanism可以帮助您在客户端和机器人之间交换信息,而无需通过将活动类型设置为event将其呈现给用户。您可以参考以下代码段来满足您的要求。

在机器人对话框中:

if(activity.Text.ToLower() == "show me my profile")
{
    var reply = context.MakeMessage() as IEventActivity;
    reply.Type = "event";
    reply.Name = "showprofile";

    //store the url of user profile in Value property
    reply.Value = $"{profile_url}";

    await context.PostAsync((IMessageActivity)reply);
}

在网络聊天客户端:

//listens for "showprofile" event from the bot

botConnection.activity$
    .filter(activity => activity.type === "event" && activity.name === "showprofile")
    .subscribe(activity => showmyprofile(activity.value));

function showmyprofile(profile_url) {
    window.open(profile_url);
}