Reputation: 1454
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
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