获取意图、实体、上下文和所有数据
Get intents, entities, contexts and all data
在这种情况下,实际上 conversation-simple 有一个包含所有值的函数,但是如果 flows conversation,该函数每次都会更新。
我想创建一个函数或其他形式来捕获当前数据上的所有数据。
案例中有意图、上下文、实体等
conversation.message(payload, function(err, data) {
if (err) {
return res.status(err.code || 500).json(err);
}
return res.json(updateMessage(payload, data));
});
});
updateMessage 参数中的数据有我需要的所有数据,但如果我创建其他函数并尝试获取此值,则不起作用。
在这种情况下,我使用这些值并使用 app.js 获取一些 REST 网络服务。
我试试看:
function login (req, res) {
numberOrigin = null;
sessionid = null;
var dataLogin = {
data: { "userName":"xxxxx","password":"xxxxx","platform":"MyPlatform" },
headers: { "Content-Type": "application/json" }
};
client.registerMethod("postMethod", "xxxxxxxxxxxxxxx/services/login", "POST");
client.methods.postMethod(dataLogin, function (data, response) {
if(Buffer.isBuffer(data)){
data = data.toString('utf8');
console.log(data);
var re = /(sessionID: )([^,}]*)/g;
var match = re.exec(data);
var sessionid = match[2]
console.log(sessionid);
}
});
}
function openRequest(data, sessionid, numberOrigin ){
//console.log(data); dont show the values.. show the data response of login
var dataRequest = {
data: {"sessionID": sessionid,
"synchronize":false,
"sourceRequest":{
"numberOrigin":numberOrigin,
"description": JSON.stringify(data.context.email) } },
headers: { "Content-Type": "application/json" }
};
numberOrigin +=1;
client.post("xxxxxxxxxxxxxxxxxx/services/request/create", dataRequest, function (data, response) {
if(Buffer.isBuffer(data)){
data = data.toString('utf8');
console.log(data);
}
});
}
function updateMessage(res, input, data, numberOrigin) {
var email = data.context.email; // this recognize but this function is responsible for other thing
if (email === 'xxxxxxxxxxxx@test.com') {
console.log(data);
login(data);
openRequest(data, sessionid, numberOrigin)
}
}
以防万一,我只想 get
我的 app.js
的值在 REST 中使用。我用 ajax
得到了它,但在客户端 (index.html) 得到了它,这让我显示了我的凭据,所以我决定在 REST 中做它以确保我的代码安全..
如果有某种形式可以解决这个问题,请告诉我。
如果有其他形式可以做,我会很高兴知道。
提前致谢。
问题可能是您需要写入响应对象 res
.. 在 updateMessage 函数中传入响应。为了将数据发送回浏览器,您需要编写到响应。我有一个演示应用程序,它调用天气频道以根据意图获取天气,类似于您尝试使用登录功能执行的操作。请看一下这段代码
https://github.com/doconnor78/conversation-simple-weather/blob/master/app.js#L130
您需要将原始的res(response) 对象传递给相应的函数,然后在从第三方服务获取数据后将数据写入response(res)。
在这种情况下,实际上 conversation-simple 有一个包含所有值的函数,但是如果 flows conversation,该函数每次都会更新。
我想创建一个函数或其他形式来捕获当前数据上的所有数据。
案例中有意图、上下文、实体等
conversation.message(payload, function(err, data) {
if (err) {
return res.status(err.code || 500).json(err);
}
return res.json(updateMessage(payload, data));
});
});
updateMessage 参数中的数据有我需要的所有数据,但如果我创建其他函数并尝试获取此值,则不起作用。
在这种情况下,我使用这些值并使用 app.js 获取一些 REST 网络服务。 我试试看:
function login (req, res) {
numberOrigin = null;
sessionid = null;
var dataLogin = {
data: { "userName":"xxxxx","password":"xxxxx","platform":"MyPlatform" },
headers: { "Content-Type": "application/json" }
};
client.registerMethod("postMethod", "xxxxxxxxxxxxxxx/services/login", "POST");
client.methods.postMethod(dataLogin, function (data, response) {
if(Buffer.isBuffer(data)){
data = data.toString('utf8');
console.log(data);
var re = /(sessionID: )([^,}]*)/g;
var match = re.exec(data);
var sessionid = match[2]
console.log(sessionid);
}
});
}
function openRequest(data, sessionid, numberOrigin ){
//console.log(data); dont show the values.. show the data response of login
var dataRequest = {
data: {"sessionID": sessionid,
"synchronize":false,
"sourceRequest":{
"numberOrigin":numberOrigin,
"description": JSON.stringify(data.context.email) } },
headers: { "Content-Type": "application/json" }
};
numberOrigin +=1;
client.post("xxxxxxxxxxxxxxxxxx/services/request/create", dataRequest, function (data, response) {
if(Buffer.isBuffer(data)){
data = data.toString('utf8');
console.log(data);
}
});
}
function updateMessage(res, input, data, numberOrigin) {
var email = data.context.email; // this recognize but this function is responsible for other thing
if (email === 'xxxxxxxxxxxx@test.com') {
console.log(data);
login(data);
openRequest(data, sessionid, numberOrigin)
}
}
以防万一,我只想 get
我的 app.js
的值在 REST 中使用。我用 ajax
得到了它,但在客户端 (index.html) 得到了它,这让我显示了我的凭据,所以我决定在 REST 中做它以确保我的代码安全..
如果有某种形式可以解决这个问题,请告诉我。
如果有其他形式可以做,我会很高兴知道。
提前致谢。
问题可能是您需要写入响应对象 res
.. 在 updateMessage 函数中传入响应。为了将数据发送回浏览器,您需要编写到响应。我有一个演示应用程序,它调用天气频道以根据意图获取天气,类似于您尝试使用登录功能执行的操作。请看一下这段代码
https://github.com/doconnor78/conversation-simple-weather/blob/master/app.js#L130
您需要将原始的res(response) 对象传递给相应的函数,然后在从第三方服务获取数据后将数据写入response(res)。