现在当有人调用twilio号时,执行Parse Cloud Code中的/ hello函数。在/ hello函数中,我可以通过request.param('From')查找谁在进行调用。有了这些信息,我想查询该用户,然后获取Receiver的电话号码,该电话号码位于用户表的“接收者”列中。
app.get('/hello', function(request, response) {
var twiml = new twilio.TwimlResponse('');
// querying the caller
Parse.Cloud.useMasterKey();
var query = new Parse.Query(Parse.User);
query.equalTo("username", request.param('From')); // querying the caller
query.find( {
success: function(result) {
twiml.dial({callerId:'+4XXXXXX7'}, result[0].get("Receiver")); // dialing the receiver
console.log("user is " +result[0]);
response.success("user is found");
},
error: function (error) {
response.error("failed finding the user");
}
});
response.type('text/xml');
response.send(twiml.toString(''));
});
app.listen();
查询不起作用,并且不会打印query.find中的日志。我尝试使用query.first而不是query.find,但这也没有用。
答案 0 :(得分:1)
request.params
是路由参数。为了使代码传递From
参数(更恰当地命名为from
),路由必须定义如下...
app.get('/hello/:from', function(request, response)
调用者应该获得/ hello / someusername。要在函数中使用from参数...
query.equalTo("username", request.params.from);
// notice the plural: "params"
一个小组织建议:排除代码中的其他问题(以及改进SO问题),开始给这个代码一个工作:用传递的用户名检索用户:
app.get('/hello/:from', function(request, response) {
// so we can test getting a user, just get a user
Parse.Cloud.useMasterKey();
var query = new Parse.Query(Parse.User);
query.equalTo("username", request.params.from);
query.find({
success: function(result) {
response.success(result);
},
error: function (error) {
response.error(error);
}
});
});
当你开始工作时,将Twillio的东西放在你从成功块中调用的函数中。这将允许您一步一步地调试代码(并提出有针对性的SO问题)。
答案 1 :(得分:0)
如果有人需要,以下代码可以使用。
app.get('/hello', function(request, response) {
var twiml = new twilio.TwimlResponse('');
// querying the caller
Parse.Cloud.useMasterKey();
var query = new Parse.Query(Parse.User);
query.equalTo("username", request.param('From')); // querying the caller
query.find( {
success: function(result) {
twiml.dial({callerId:'+4XXXXXX7'}, result[0].get("Receiver")); // dialing the receiver
console.log("user is " +result[0]);
response.success("user is found");
response.type('text/xml');
response.send(twiml.toString(''));
},
error: function (error) {
response.error("failed finding the user");
}
});
});
app.listen();