我正在我的 parse.com 帐户中处理云代码,以通过 Twilio 帐户发送 SMS 消息。我正在使用 Parse 提供的集成 Twilio 云模块。如果我在调用中不包含 StatusCallback 参数,则对 sendSMS 的调用成功。我在发送响应中将消息保存在 Parse 中,并希望使用回调将消息状态更新为已发送或失败。我使用的回调 URL 是我解析帐户上的另一个云函数。我对 URL 使用了 Parse 格式,其中在 https:// 和 api URL 之间包含我的 App 密钥和 JS 密钥:
https:// appID :javascript-key= jsKey @api.parse.com/1/functions/callbackSMS
(其中appID和jsKey是 Parse 提供的密钥)
当我将此 URL 作为调用 sendSMS 的 StatusCallback 参数包含在内时,Twilio 服务器会拒绝该调用。响应标识错误 21609,无效 URL。但是,我可以成功地使用 CURL 手动调用 URL。而且,当配置为号码的消息请求 URL 时,完全相同的 URL 格式可以正常工作。这是使用 Twilio 网站输入的与我的帐户关联的号码。
还有其他人在云函数中使用 Parse/Twilio 模块并提供建议吗?如何从 Parse 云代码调用 sendSMS 并提供 StatusCallback URL 以在另一个 Parse 云函数处接收更新,以在 Twilio 发送 SMS 后更新 msg 状态?为了完整起见,我的 sendSMS 云代码包括:
client.sendSms({
to:'+12223334444',
from:'+1222333555',
body:'msg body from db',
StatusCallback:'https://appID:javascript-key=jsKey@api.parse.com/1/functions/callbackSMS'
}, function (err, responseData) {
if (err) {
console.log(err);
response.error(err);
} else {
var SMSLog = Parse.Object.extend("Message");
var smsLog = new SMSLog();
smsLog.save({
messageId: responseData['sid'],
dateCreated: responseData['dateCreated'],
dateUpdated: responseData['dateUpdated'],
dateSent: responseData['dateSent'],
accountSid: responseData['accountSid'],
to: responseData['to'],
from: responseData['from'],
body: responseData['body'],
status: responseData['status']
}, {
success: function (smsLog) {
response.success(responseData);
},
error: function (smsLog, error) {
response.error("failed to save sms msg");
}
});
}
});