Twilio с проблемой Parse Server

В настоящее время я пытаюсь заставить Twilio работать с сервером Parse. Раньше он прекрасно работал с размещенным Parse. Однако после перехода на сервер Parse у меня возникли некоторые проблемы.

Теперь моя проблема заключается в том, что когда я вызываю свой облачный код, я получаю сообщение об ошибке: "code":1,"message":"Internal server error.". В логах хероку вижу: Uncaught internal server error. Cannot read property 'set' of null.

Пока что я сузил его до того, что он находится где-то в main.js, откуда я звоню, пытаясь отправить SMS. У меня нет большой практики с JavaScript, поэтому любая помощь очень ценится.

Кроме того, я не уверен, следует ли мне использовать двойные или одинарные кавычки, когда требуется twilio, как в первой строке моего main.js.

основной.js:

var twilio = require("twilio")
var twilioAccountSid = 'XXXXXXXXXXXXXXXXXXXXXXXXXX';
var twilioAuthToken = 'XXXXXXXXXXXXXXXXXXXXXXXXXX';
var twilioPhoneNumber = '+1XXX-XXX-XXXX';
var secretPasswordToken = 'XXXX';


var twilio = require("twilio")(twilioAccountSid, twilioAuthToken);

Parse.Cloud.define("sendVerificationCode", function(request, response) {
               var min = 1000; var max = 9999;
               var verificationCode = Math.floor(Math.random() * (max - min + 1)) + min;
               var user = Parse.User.current();
               user.set("phoneVerificationCode", verificationCode);
               user.save();

               twilio.sendMessage({
                              From: twilioPhoneNumber,
                              To: request.params.phoneNumber,
                              Body: "Your verification code is " + verificationCode + "."
                              }, function(err, responseData) {
                              if (err) {
                              response.error(err);
                              } else {
                              response.success("Success");
                              }
                              });
               });
Parse.Cloud.define("verifyPhoneNumber", function(request, response) {
               var user = Parse.User.current();
               var verificationCode = user.get("phoneVerificationCode");
               if (verificationCode == request.params.verifyPhoneNumber) {
               user.set("phoneNumber", request.params.phoneNumber);
               user.save();
               response.success("Success");
               } else {
               response.error("Invalid verification code.");
               }
               }); 

person 01Riv    schedule 07.04.2016    source источник


Ответы (1)


Вы не должны назначать свою переменную twilio дважды.

Удалите свой первый запрос и используйте только один после того, как вы определите свой Sid и токен. Это должно выглядеть так:

var twilioSid = 'xxxx';
var twilioToken = 'xxxx';
var twilio = require('twilio')(twilioSid, twilioToken);
person Slack    schedule 21.04.2016