我正在尝试使用 Parse 接收发送到我的 Twilio 号码的短信以及 Parse 的云代码 Twilio Module。我已按照说明 here 进行操作.
我为我想要接收短信的 Twilio 号码设置了 SMS 请求 URL
https://myAppID:javascript-key=myJavaScriptKey@api.parse.com/1/functions/receiveSMS
当然,我使用了我的解析应用 ID 和解析 javascript key 。
然后我在 Parse 中创建了云函数:
Parse.Cloud.define("receiveSMS", function(request, response) {
response.success("Received a new text: " + request.params.From);
});
然后我有一个小网页,其中有一些 jquery 调用该云函数
$('button').on('click', function() {
alert('button');
Parse.Cloud.run('receiveSMS', {
}, {
// Success handler
success: function(message) {
alert('Success: ' + message);
},
// Error handler
error: function(message) {
alert('Error: ' + message);
}
});
});
我尝试向我的 Twilio 号码发送短信,然后使用带有上述代码的页面来调用云代码函数“receiveSMS”。响应成功,我收到消息“收到新文本:未定义”。所以看起来我能够检测到发送了一条新短信,但我得到的是未定义的信息,而不是短信的号码。我也想收到消息。我究竟做错了什么?谢谢
最佳答案
好的,我知道现在发生了什么,感谢您在评论中为我提供更多详细信息。
您正在通过两种方式调用 receiveSMS
函数。首先,当您向 Twilio 号码发送短信时,它会被调用。收到该请求后,您确实会注销所有参数,并且您的日志将显示“收到新文本:+YOUR_PHONE_NUMBER”
。
问题是当您从网页调用 receiveSMS
函数时。此时,请求中没有参数,这就是您在日志中看到 undefined
的原因。 receiveSMS
功能实际上是为了 Twilio 的利益,因为您可以使用 TwiML 进行响应告诉 Twilio 处理该消息。
如果您想取回发送到您的 Twilio 号码的 SMS 消息的详细信息,您可以在不同的云功能中使用我们的 REST API 检索数据,如下所示:
var client = require('twilio')('TWILIO_SID', 'TWILIO_AUTH_TOKEN');
Parse.Cloud.define('fetchSMS', function(request, response) {
client.messages.list({ to: YOUR_TWILIO_NUMBER }, function(err, data){
numbers = data.messages.map(function(message){
return message.from;
}).join(', ');
response.success("Received messages from: " + numbers);
})
});
然后,如果您将网页更改为调用 Parse.Cloud.run('fetchSMS', { ... })
,那么您的响应应该是您已收到 SMS 消息的号码列表从。希望您能在此基础上继续发展。
如果这有帮助,请告诉我。
关于javascript - 为什么我无法使用 Twilio 和 Parse 接收短信?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25419860/