我在网站内部使用了一条直线,我想知道是否仍然可以在我的机器人代码中获取该网站的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中,我找不到在机器人内部获取引荐来源网址的方法。
有人可以帮助我吗? 预先感谢。
答案 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');
});
};
在此示例中,该方法与页面上按下的按钮相关。
希望有帮助!