2016-02-13 51 views
2

我只是对那些知识渊博的解析,云代码,Twilio和快速超快速的问题...调用从快速解析云代码功能GET方法

基本上我已经设置了Node.js的快速功能它处理GET的特定URL,Twilio每当有人拨打电话号码时都会调用该URL,并且我想从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); 
     } 
    }); 

}); 

我希望这会工作,但它似乎失败了我的情况...让我知道如果我失去了一些东西。

谢谢!

+0

这种失败的方式是什么?正如你收到NOTIFICATION FAILED事件?如果是这样,错误是什么? 你忽略的一件事是你没有从app.get返回。您需要在成功和错误中添加快速返回语句。 –

回答

1

在进一步测试中,看起来实际上,解析云代码功能被调用并正在发送推送通知。由于某种原因(也许在苹果的部分上限制?)它似乎没有被发送,它似乎也没有被调用,当我看着日志,但我绝对正在接受一些推送通知。

UPDATE

其实什么结束了更好的工作只是把推送通知,如这里所描述(甚至不回调)一个普通的老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() - 并且它可以工作,或者它不工作。无论哪种方式,在这种情况下,这些信息都不是真正的消费者,所以我只记录它成功或失败的事实。

我很满意,它的工作很棒!

只是希望解析会一直在... ...但这是另一个问题。