从Express Get方法调用Parse Cloud代码函数

从Express Get方法调用Parse Cloud代码函数,express,parse-platform,parse-cloud-code,Express,Parse Platform,Parse Cloud Code,对于那些精通解析、云代码、Twilio和Express的人,我有一个超级快速的问题 基本上,我已经设置了一个node.js Express函数来处理特定URL的GET,每当有人呼叫电话号码时,Twilio就会调用该URL,我想从GET处理函数调用解析云代码函数,通知其帐户与该特定号码关联的用户 因此,我的问题是在下面的代码示例中是否会调用解析云函数“NotifyConferenceNumberRowner” app.get('/conf', function(request, response)

对于那些精通解析、云代码、Twilio和Express的人,我有一个超级快速的问题

基本上,我已经设置了一个node.js Express函数来处理特定URL的GET,每当有人呼叫电话号码时,Twilio就会调用该URL,我想从GET处理函数调用解析云代码函数,通知其帐户与该特定号码关联的用户

因此,我的问题是在下面的代码示例中是否会调用解析云函数“NotifyConferenceNumberRowner”

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);
        }
    });

});
我希望这会起作用,但在我的情况下似乎失败了。。。如果我遗漏了什么,请告诉我


谢谢

在进一步的测试中,事实上,似乎正在调用解析云代码函数并发送推送通知

出于某种原因(可能是苹果方面的节流?),当我查看日志时,它们似乎没有被发送,而且函数似乎也没有被调用,但我肯定会收到一些推送通知

更新

实际上,更有效的方法是将推送通知发送代码放在一个简单的老JavaScript函数中,如下所述(甚至没有回调):

所以现在看起来更像这样:

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能留下来。。。但这是另一个问题。

这在什么方面失败了?您是否正在接收通知失败事件?如果是,错误是什么?您忽略的一件事是,您没有从app.get返回。您需要在success和error中添加一个express return语句。