获取URL引用[BotFramework-WebChat]

时间:2018-11-22 22:55:35

标签: botframework direct-line-botframework

我在网站内部使用了一条直线,我想知道是否仍然可以在我的机器人代码中获取该网站的URL。以前,在v3中,我使用以下方式初始化聊天:

 BotChat.App({
        directLine: { secret: "{directline_secret}" },
        user: { id: 'You', referrer: window.location.href},
        bot: { id: '{bot_id}' },
        resize: 'detect'
    }, document.getElementById("bot"));

并且我能够使用此行代码activity.From.Properties["referrer"].ToString()获取引荐来源网址,但是在v4中,我找不到在机器人内部获取引荐来源网址的方法。

有人可以帮助我吗? 预先感谢。

1 个答案:

答案 0 :(得分:0)

在v4中,该值是turnContext.activity(在Node中)或turnContext.Activity(在C#中)对象的一部分。像在问题中一样传递url值(即作为用户对象的一部分),您将像这样访问它(Node示例):

async onTurn(turnContext) {

    if (
        turnContext.activity.type === "event" && turnContext.activity.name === "eventName"
    ) {
        this.userProfile.location = turnContext.activity.from.referrer;
        await console.log(this.userProfile.location);
    }

我在BotChat.App帖子中添加了一个名称并指定了一种类型,以将turn.Context中的 this 事件与之匹配:

function testMethod(someValue) {
  botConnection
    .postActivity({
      from: { id: 'me', referrer: window.location.href },
      name: 'eventName',
      type: 'event',
      value: someValue
    })
    .subscribe(function (id) {
      console.log('"eventName" sent');
    });
};

在此示例中,该方法与页面上按下的按钮相关。

希望有帮助!