Javascript 如何更改Bot/Skype频道的传入消息文本格式
Bot emulator可以很好地处理明文响应,但当我尝试通过Skype执行同样的操作时,Bot响应会显示为 我不明白,请再试一次 我发现Skype通过将电子邮件包装在Javascript 如何更改Bot/Skype频道的传入消息文本格式,javascript,node.js,botframework,skype,Javascript,Node.js,Botframework,Skype,Bot emulator可以很好地处理明文响应,但当我尝试通过Skype执行同样的操作时,Bot响应会显示为 我不明白,请再试一次 我发现Skype通过将电子邮件包装在中来自动格式化电子邮件,但这是在C#上,我使用的是Node.JS 如何将bot/skype频道的默认文本格式更改为纯文本而不是标记,以避免skype自动格式化 根据更新了,但仍然没有运气。也许我做错了 // bot.js bot.use(...[logger]); // logger.js module.exports = ex
中来自动格式化电子邮件,但这是在C#上,我使用的是Node.JS
如何将bot/skype频道的默认文本格式更改为纯文本而不是标记,以避免skype自动格式化
根据更新了,但仍然没有运气。也许我做错了
// bot.js
bot.use(...[logger]);
// logger.js
module.exports = exports = {
receive: (e, next) => {
e.textFormat('plain');
logConversation(e);
next();
},
send: (e, next) => {
logConversation(e);
next();
}
};
为了避免这种情况,您需要验证是否有HTML包装的电子邮件地址,然后从字符串中提取电子邮件部分,然后将其保存到会话.dialogData
例如,替换:
与:
//其中results.response的格式为“”
var exampleEmailWrappedInHtml=results.response;
//验证是否有来自Skype的HTML格式的电子邮件
如果(例如emailwrappedinhtml.match(/)要避免这种情况,您需要验证是否有HTML包装的电子邮件地址,然后从字符串中提取电子邮件部分,然后将其保存到会话.dialogData
例如,替换:
与:
//其中results.response的格式为“”
var exampleEmailWrappedInHtml=results.response;
//验证是否有来自Skype的HTML格式的电子邮件
如果(例如emailwrappedinhtml.match(/您可以调用消息的方法,如C#
可接受的数值为:
export var TextFormat={
朴素:“朴素”,
降价:“降价”,
xml:'xml'
}
您只需调用消息的方法
,如C
可接受的数值为:
export var TextFormat={
朴素:“朴素”,
降价:“降价”,
xml:'xml'
}
为什么不按频道过滤,然后添加一些正则表达式?我不知道怎么做,我找到的关于频道的唯一例子是为facebook做的,有些东西与.NET曲目上的相关,但与Node.JS上的不相关。为什么不按频道过滤,然后添加一些正则表达式?我不知道怎么做,也不知道我找到的唯一例子关于频道的内容是为facebook做的,有些内容与.NET轨道上的内容相关,但与Node.JS上的内容不相关,因为它从未到达第40行。我认为,机器人响应源自Luis意图。这不起作用,因为它从未到达第40行。我认为,机器人响应源自Luis意图。在什么地方我必须设置这一点吗?我在bot上试过。使用
中间件但不起作用。我必须在什么时候设置这一点?我在bot上试过。使用
中间件但不起作用。
const usernameOrEmail = session.dialogData.usernameOrEmail = results.response;
// where results.response is in the format '<a href="hello@world.com">hello@world.com</a>'
var exampleEmailWrappedInHtml = results.response;
// validate if we have email wrapped in HTML from Skype
if(exampleEmailWrappedInHtml.match(/<a href="mailto:/i)) {
console.log('HTML wrapped email detected!');
const usernameOrEmail = session.dialogData.usernameOrEmail = exampleEmailWrappedInHtml.split('>')[1].split('<')[0];
} else {
console.log('no match.');
}