如何在内联编辑器对话框流中发出 post 请求?
how to make post request in inline editor dialogflow?
首先,我使用的是 blaze tier,所以没有计费问题。
我还包括
"request":“*”
在 package.json 依赖项中。
在内联编辑器中查看我的代码index.js:
`
'use strict';
var global_request = require('request');
var myJSONObject = {
"limit": 10,
"offset": 0,
"query": "example"
};
global_request.post(
'https://example.com', {
json: myJSONObject },
function (error, res, body) {
if (!error && res.statusCode == 200) {
console.log(res);
console.log(body);
}
}
);
`
但是在 firebase 日志中我收到以下错误:
Unhandled rejection
Error: Can't set headers after they are sent.
我关注 寻求帮助。但是代码还是有错误。
我在这里做错了什么?感谢帮助。
Dialogflow 库假定您在执行异步操作时使用 Promises。
通常,我不使用 request
库,而是使用 request-promise-native
库。所以该代码块可能看起来像这样:
var rp = require('request-promise-native');
var myJSONObject = {
"limit": 10,
"offset": 0,
"query": "example"
};
var options = {
method: 'post',
uri: 'https://example.com',
body: myJSONObject,
json: true
};
return rp( options )
.then( body => {
console.log( body );
// This is also where you'd call the library
// to send a reply.
return Promise.resolve( true );
})
.catch( err => {
// You should also return a message here of some sort
return Promise.resolve( true );
});
首先,我使用的是 blaze tier,所以没有计费问题。
我还包括
"request":“*”
在 package.json 依赖项中。
在内联编辑器中查看我的代码index.js:
`
'use strict';
var global_request = require('request');
var myJSONObject = {
"limit": 10,
"offset": 0,
"query": "example"
};
global_request.post(
'https://example.com', {
json: myJSONObject },
function (error, res, body) {
if (!error && res.statusCode == 200) {
console.log(res);
console.log(body);
}
}
);
`
但是在 firebase 日志中我收到以下错误:
Unhandled rejection
Error: Can't set headers after they are sent.
我关注 寻求帮助。但是代码还是有错误。 我在这里做错了什么?感谢帮助。
Dialogflow 库假定您在执行异步操作时使用 Promises。
通常,我不使用 request
库,而是使用 request-promise-native
库。所以该代码块可能看起来像这样:
var rp = require('request-promise-native');
var myJSONObject = {
"limit": 10,
"offset": 0,
"query": "example"
};
var options = {
method: 'post',
uri: 'https://example.com',
body: myJSONObject,
json: true
};
return rp( options )
.then( body => {
console.log( body );
// This is also where you'd call the library
// to send a reply.
return Promise.resolve( true );
})
.catch( err => {
// You should also return a message here of some sort
return Promise.resolve( true );
});