Как настроить Twilio на сервере разбора?

Я пытаюсь включить 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, но я не уверен. Как я могу решить эту проблему? Спасибо за ваше время.


person Baylor Mitchell    schedule 06.04.2016    source источник
comment
Вы установили модуль Twilio в свое приложение? npm install twilio --save. Кроме того, ошибка, которую вы показываете, выглядит так, как будто она связана с iOS. У вас есть дополнительная информация о том, где возникает ошибка на сервере?   -  person philnash    schedule 07.04.2016
comment
Я получаю эту ошибку каждый раз, когда что-то на стороне облака неверно. И я не устанавливал модуль twilio, однако мой сервер развернут через веб-версию github с героку (я не использовал инструмент командной строки). Повлияет ли это установка?   -  person Baylor Mitchell    schedule 07.04.2016


Ответы (2)


Евангелист разработчиков Twilio здесь.

Судя по нашему разговору в комментариях, вы не установили модуль Twilio npm пока что. На Parse вам не нужно было устанавливать модуль, так как он был включен по умолчанию. Чтобы использовать модуль Twilio с сервером Parse, он должен быть установлен.

Чтобы установить модуль, откройте приложение в терминале и введите:

$ npm install twilio --save

Флаг --save важен, поскольку он сохраняет зависимость от вашего файла package.json. Зарегистрируйте обновленный package.json и снова разверните свой код. Теперь при развертывании на Heroku будут устанавливаться модули npm, включая модуль Twilio.

Марин, которая тоже уже ответила, была права. Я также рекомендую использовать twilio.sendMessage. Он использует более новый и улучшенный ресурс Messages (а не устаревший ресурс SMS). .

Дайте мне знать, поможет ли это вообще.

person philnash    schedule 07.04.2016
comment
Ура! Надеюсь, что остальная часть вашего приложения пойдет хорошо. - person philnash; 07.04.2016

Я думаю, что это проблема для версии 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.");
        }

    });

});
person Marin Moldovanu    schedule 06.04.2016
comment
Я пробовал это, и это та же проблема. Я подумал, что проблема не в этом, потому что даже если я не вызываю облачную функцию, я получаю этот ответ. Однако, если я прокомментирую две верхние строки, сервер будет работать нормально. - person Baylor Mitchell; 07.04.2016
comment
Ваш код находится в облаке/main.js на парсер-сервере? - person Baylor Mitchell; 07.04.2016
comment
/////////// Да.///////////// - person Marin Moldovanu; 07.04.2016
comment
Являются ли значения to и from строками или целыми числами? Если это строки, в каком формате они? - person Baylor Mitchell; 07.04.2016
comment
они строкового типа. - person Marin Moldovanu; 07.04.2016