Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何更改Bot/Skype频道的传入消息文本格式_Javascript_Node.js_Botframework_Skype - Fatal编程技术网

Javascript 如何更改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

Bot emulator可以很好地处理明文响应,但当我尝试通过Skype执行同样的操作时,Bot响应会显示为

我不明白,请再试一次

我发现Skype通过将电子邮件包装在
中来自动格式化电子邮件,但这是在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.');
}