01Riv
01Riv

Reputation: 1454

Twilio with Parse Server issue

Currently I am trying to get Twilio woking with the Parse Server. Previously I had it running nicely with the hosted Parse. However since migrating to the Parse server I have had some issues.

My issue now is that when I call my Cloud Code I get an error: "code":1,"message":"Internal server error.". In the heroku logs I see: Uncaught internal server error. Cannot read property 'set' of null.

So far I have narrowed it down to it being somewhere in main.js, where I am calling trying to send SMS from. I don't have much practice with JavaScript so any help is much appreciated.

Also, I am unsure if I should use double or single quotes when requiring twilio, as in the first line of my main.js.

main.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.");
               }
               }); 

Upvotes: 1

Views: 136

Answers (1)

Slack
Slack

Reputation: 9

You shouldn't be assigning your twilio variable twice.

Remove your first require, and only use one, after you define your Sid and Token. It should look like this:

var twilioSid = 'xxxx';
var twilioToken = 'xxxx';
var twilio = require('twilio')(twilioSid, twilioToken);

Upvotes: 1

Related Questions