具有解析服务器问题的Twilio

时间:2016-04-07 06:23:05

标签: ios heroku twilio cloud-code parse-server

目前我正试图让Twilio与Parse Server一起工作。以前我让它与托管的Parse运行良好。但是,由于迁移到Parse服务器,我遇到了一些问题。

我现在的问题是,当我调用我的Cloud Code时出现错误:"code":1,"message":"Internal server error."。在heroku日志中,我看到: Uncaught internal server error. Cannot read property 'set' of null

到目前为止,我已将其缩小到main.js中的某个地方,我正在呼叫尝试发送短信。我没有太多的JavaScript练习,所以非常感谢任何帮助。

此外,我不确定在需要twilio时是否应该使用双引号或单引号,如在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.");
               }
               }); 

1 个答案:

答案 0 :(得分:1)

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);