2

我正在我的 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
(其中appIDjsKey是 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"); 
            } 
            }); 
        } 
    });
4

1 回答 1

2

Parse.com 使用了自定义模块,因为托管的云代码解决方案实际上并未运行 Node 并且无法使用公共节点模块。

现在,您可以在自己的服务器/本地主机/云提供商上运行 Parse Server,并使用官方公共的 Twilio npm 模块

在此处查看 Parse Server 存储库:https ://github.com/parseplatform/parse-server

以及 twilio npm 模块:https ://www.npmjs.com/package/twilio

于 2016-03-03T23:15:03.917 回答