使用反向通道从我网站上的网络聊天电话中获取价值
Getting values from my web chat call in my website using backchannel
我正在尝试集成反向通道并获取值。
https://github.com/Microsoft/BotFramework-WebChat/tree/master/samples/15.d.backchannel-send-welcome-event
这个我也试过了。
我也试过反序列化仍然无法获取数据的值。
我怎样才能获得语言值?
这是我的示例代码:
var userinfo = {
id: 'user-id',
name: 'user name',
locale: 'es'
};
var botConnection = new BotChat.DirectLine({
token: 'mytoken',
user: userinfo,
locale: 'es'
});
BotChat.App({
botConnection : botConnection,
user: userinfo,
bot: { id: 'bot-id', name: 'bot name' },
}, document.getElementById('botDiv'));
botConnection
.postActivity({
from: userinfo,
name: 'ConversationUpdate',
type: 'event',
value: '',
})
.subscribe(function (id) {
console.log('"trigger ConversationUpdate" sent');
});
这样做的目的是我想将语言环境从我的网站传递到我的机器人。
就像在模拟器中一样。
谢谢!
我建议将语言环境添加到反向频道事件的频道数据中。这样,在机器人端,您可以简单地访问传入 activity 中的语言环境,而无需在收到事件时反序列化任何 JSON 对象。请注意,您还可以使用文本或值代替 channelData。请参阅下面的代码片段。
BotChat 返回频道事件
// Send back channel event
botConnection.postActivity({
from: userinfo,
name: 'setLocale',
type: 'event',
channelData: "es"
}).subscribe(id => console.log(id));
机器人 - C#
public async Task OnTurnAsync(ITurnContext turnContext, CancellationToken cancellationToken = default(CancellationToken))
{
if (turnContext.Activity.Type == ActivityTypes.Message)
{
...
} else if (turnContext.Activity.Type == "event") {
// Check for `setLocale` events
if (turnContext.Activity.Name == "setLocale") {
await turnContext.SendActivityAsync($"Your locale is set to {turnContext.Activity.ChannelData}");
}
}
else
{
await turnContext.SendActivityAsync($"{turnContext.Activity.Type} event detected");
}
}
希望对您有所帮助!
我正在尝试集成反向通道并获取值。 https://github.com/Microsoft/BotFramework-WebChat/tree/master/samples/15.d.backchannel-send-welcome-event
这个我也试过了。
我也试过反序列化仍然无法获取数据的值。 我怎样才能获得语言值?
这是我的示例代码:
var userinfo = {
id: 'user-id',
name: 'user name',
locale: 'es'
};
var botConnection = new BotChat.DirectLine({
token: 'mytoken',
user: userinfo,
locale: 'es'
});
BotChat.App({
botConnection : botConnection,
user: userinfo,
bot: { id: 'bot-id', name: 'bot name' },
}, document.getElementById('botDiv'));
botConnection
.postActivity({
from: userinfo,
name: 'ConversationUpdate',
type: 'event',
value: '',
})
.subscribe(function (id) {
console.log('"trigger ConversationUpdate" sent');
});
这样做的目的是我想将语言环境从我的网站传递到我的机器人。
就像在模拟器中一样。
我建议将语言环境添加到反向频道事件的频道数据中。这样,在机器人端,您可以简单地访问传入 activity 中的语言环境,而无需在收到事件时反序列化任何 JSON 对象。请注意,您还可以使用文本或值代替 channelData。请参阅下面的代码片段。
BotChat 返回频道事件
// Send back channel event
botConnection.postActivity({
from: userinfo,
name: 'setLocale',
type: 'event',
channelData: "es"
}).subscribe(id => console.log(id));
机器人 - C#
public async Task OnTurnAsync(ITurnContext turnContext, CancellationToken cancellationToken = default(CancellationToken))
{
if (turnContext.Activity.Type == ActivityTypes.Message)
{
...
} else if (turnContext.Activity.Type == "event") {
// Check for `setLocale` events
if (turnContext.Activity.Name == "setLocale") {
await turnContext.SendActivityAsync($"Your locale is set to {turnContext.Activity.ChannelData}");
}
}
else
{
await turnContext.SendActivityAsync($"{turnContext.Activity.Type} event detected");
}
}
希望对您有所帮助!