如何在解析服务器上配置 Twilio?

How to configure Twilio on parse server?

我正在尝试将 Twilio 合并到我的 运行 应用程序中,该应用程序位于我使用 Heroku 和 MongoLab 部署的解析服务器上。我正在尝试在我的 cloud/main.js 文件

中使用此代码进行配置
var twilio = require("twilio");
twilio.initialize("87se46bovanw4v5aiwy4o57","ia8o57awyov57yn875vyboe");


Parse.Cloud.define("inviteWithTwilio", function(request, response) {
// Use the Twilio Cloud Module to send an SMS
twilio.sendSMS({
    From: "6543211234",
    To: 8065456703,
    Body: "Start using Parse and Twilio!"
  }, {
success: function(httpResponse) { response.success("SMS sent!"); },
error: function(httpResponse) { response.error("Uh oh, something went wrong"); }
  });
});

但是,我收到了这个回复

    UserInfo={NSDebugDescription=JSON text did not start with array or object and option to allow fragments not set.} [NSDebugDescription: JSON text did not start with array or object and option to allow fragments not set.]

我确定问题出在尝试初始化 Twilio 时的前两行。我认为这是因为 Twilio Cloud Module 没有像使用 Parse Hosted 云代码那样集成到我的解析服务器中,但我不确定。我该如何解决这个问题?谢谢你的时间。

我认为这是 Twilio 版本的问题。

你应该使用 twilio.sendMessage.

var twilio = require("twilio");
twilio.initialize("87se46bovanw4v5aiwy4o57","ia8o57awyov57yn875vyboe");


Parse.Cloud.define("inviteWithTwilio", function(request, response) {
// Use the Twilio Cloud Module to send an SMS
twilio.sendMessage({
    From: "6543211234",
    To: 8065456703,
    Body: "Start using Parse and Twilio!"
  }, {
success: function(httpResponse) { response.success("SMS sent!"); },
error: function(httpResponse) { response.error("Uh oh, something went wrong"); }
  });
});

希望能帮到你。

谢谢

///////////////////////////////////

我的代码运行良好。

Parse.Cloud.define("sendSMS", function(request, response) {

    console.log(request);
    var twilio = require("twilio")("ACCOUNT_SID","AUTH_TOKEN");

    twilio.sendMessage({

        to: request.params.number,
        from: request.params.from,
        body: request.params.message

    }, function(err, responseData) { 

        if (err) {
            response.error(err);
        } else { 
            response.success("SMS sent.");
        }

    });

});

这里是 Twilio 开发人员布道者。

从我们在评论中的对话来看,您似乎还没有安装 Twilio npm module。在 Parse 上,您不必安装该模块,因为它是默认包含的。要通过 Parse 服务器使用 Twilio 模块,您需要安装它。

要安装该模块,请在终端中打开您的应用程序并键入:

$ npm install twilio --save

--save 标志很重要,因为它将依赖项保存到您的 package.json 文件中。签入更新后的 package.json 并再次部署您的代码。现在,当部署到 Heroku 时,将安装 npm 模块,包括 Twilio 模块。

马林也已经回答了,他的观点很好。我还建议使用 twilio.sendMessage。它使用更新且功能更好的 Messages resource(而不是已弃用的 SMS 资源)。

如果这有帮助,请告诉我。