从 Express Get 方法调用 Parse Cloud Code 函数
Calling Parse Cloud Code function from Express Get Method
我有一个非常快速的问题想问那些精通 Parse、Cloud Code、Twilio 和 Express 的人...
基本上,我已经设置了一个 node.js Express 函数来处理特定 URL 的 GET,只要有人拨打 phone 号码,Twilio 就会调用该函数,我想要从 GET 处理函数调用 Parse Cloud Code 函数,该函数通知其帐户与该特定号码相关联的用户。
因此我的问题是在下面的代码示例中是否会调用 Parse Cloud 函数 "notifyConferenceNumberOwner"。
app.get('/conf', function(request, response) {
var phoneNumber = request.query['To'];
var twiml = new twilio.TwimlResponse();
twiml.say('Your conference call will begin momentarily.',
{
voice:'woman',
language:'en-gb'
})
.dial({
action:'http://url-to-call-status',
method:'GET'
},
function(node) {
node.conference('MyConference', {
waitUrl:'http://twimlets.com/holdmusic?Bucket=com.twilio.music.guitars',
startConferenceOnEnter:'true',
beep:'true'
});
});
response.type('text/xml');
response.send(twiml.toString());
Parse.Cloud.run('notifyConferenceNumberOwner', { conferenceCallNumber: phoneNumber }, {
success: function(ratings) {
console.log('*** NOTIFICATION SUCCEEDED');
},
error: function(error) {
console.error('*** NOTIFICATION FAILED: ' + error);
}
});
});
我希望这会奏效,但在我的情况下似乎失败了...如果我遗漏了什么,请告诉我。
谢谢!
在进一步的测试中,似乎 Parse Cloud Code 函数 被 调用并发送推送通知。
出于某种原因(也许是 Apple 方面的限制?)它们似乎没有被发送,而且当我查看日志时似乎也没有调用该函数,但我确实收到了一些推送通知.
更新
实际上,最终效果更好的是将推送通知发送代码放在一个普通的旧 JavaScript 函数中,如此处所述(甚至没有回调):
https://www.parse.com/questions/can-i-use-a-cloud-code-function-within-another-cloud-code-function
所以现在看起来更像是这样:
app.get('/conf', function(request, response) {
var phoneNumber = request.query['To'];
var twiml = new twilio.TwimlResponse();
twiml.say('Your conference call will begin momentarily.',
{
voice:'woman',
language:'en-gb'
})
.dial({
action:'http://url-to-call-status',
method:'GET'
},
function(node) {
node.conference('MyConference', {
waitUrl:'http://twimlets.com/holdmusic?Bucket=com.twilio.music.guitars',
startConferenceOnEnter:'true',
beep:'true'
});
});
sendCallNotification(phoneNumber);
response.type('text/xml');
response.send(twiml.toString());
});
...现在它每次都能正常工作,到目前为止一直非常可靠。
sendCallNotification 只是为推送通知准备一条消息,然后调用 Parse.Push.send() -- 它要么有效,要么无效。无论哪种方式,在这种情况下都没有真正的消费者使用该信息,所以我只记录它成功或失败的事实。
我很满意,效果很好!
只希望 Parse 能继续存在...但那是另一个问题。
我有一个非常快速的问题想问那些精通 Parse、Cloud Code、Twilio 和 Express 的人...
基本上,我已经设置了一个 node.js Express 函数来处理特定 URL 的 GET,只要有人拨打 phone 号码,Twilio 就会调用该函数,我想要从 GET 处理函数调用 Parse Cloud Code 函数,该函数通知其帐户与该特定号码相关联的用户。
因此我的问题是在下面的代码示例中是否会调用 Parse Cloud 函数 "notifyConferenceNumberOwner"。
app.get('/conf', function(request, response) {
var phoneNumber = request.query['To'];
var twiml = new twilio.TwimlResponse();
twiml.say('Your conference call will begin momentarily.',
{
voice:'woman',
language:'en-gb'
})
.dial({
action:'http://url-to-call-status',
method:'GET'
},
function(node) {
node.conference('MyConference', {
waitUrl:'http://twimlets.com/holdmusic?Bucket=com.twilio.music.guitars',
startConferenceOnEnter:'true',
beep:'true'
});
});
response.type('text/xml');
response.send(twiml.toString());
Parse.Cloud.run('notifyConferenceNumberOwner', { conferenceCallNumber: phoneNumber }, {
success: function(ratings) {
console.log('*** NOTIFICATION SUCCEEDED');
},
error: function(error) {
console.error('*** NOTIFICATION FAILED: ' + error);
}
});
});
我希望这会奏效,但在我的情况下似乎失败了...如果我遗漏了什么,请告诉我。
谢谢!
在进一步的测试中,似乎 Parse Cloud Code 函数 被 调用并发送推送通知。
出于某种原因(也许是 Apple 方面的限制?)它们似乎没有被发送,而且当我查看日志时似乎也没有调用该函数,但我确实收到了一些推送通知.
更新
实际上,最终效果更好的是将推送通知发送代码放在一个普通的旧 JavaScript 函数中,如此处所述(甚至没有回调):
https://www.parse.com/questions/can-i-use-a-cloud-code-function-within-another-cloud-code-function
所以现在看起来更像是这样:
app.get('/conf', function(request, response) {
var phoneNumber = request.query['To'];
var twiml = new twilio.TwimlResponse();
twiml.say('Your conference call will begin momentarily.',
{
voice:'woman',
language:'en-gb'
})
.dial({
action:'http://url-to-call-status',
method:'GET'
},
function(node) {
node.conference('MyConference', {
waitUrl:'http://twimlets.com/holdmusic?Bucket=com.twilio.music.guitars',
startConferenceOnEnter:'true',
beep:'true'
});
});
sendCallNotification(phoneNumber);
response.type('text/xml');
response.send(twiml.toString());
});
...现在它每次都能正常工作,到目前为止一直非常可靠。
sendCallNotification 只是为推送通知准备一条消息,然后调用 Parse.Push.send() -- 它要么有效,要么无效。无论哪种方式,在这种情况下都没有真正的消费者使用该信息,所以我只记录它成功或失败的事实。
我很满意,效果很好!
只希望 Parse 能继续存在...但那是另一个问题。