带有解析服务器问题的 Twilio

Posted

技术标签:

【中文标题】带有解析服务器问题的 Twilio【英文标题】:Twilio with Parse Server issue 【发布时间】:2016-04-07 06:23:04 【问题描述】:

目前我正在尝试让 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】:

您不应该将 twilio 变量分配两次。

在定义了 Sid 和 Token 之后,删除您的第一个要求,并且只使用一个。它应该是这样的:

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

【讨论】:

以上是关于带有解析服务器问题的 Twilio的主要内容,如果未能解决你的问题,请参考以下文章

将模块添加到解析服务器

Twilio 中的字符限制问题并手动回复

带有 Twilio 的 Google App Engine:ImportError:没有名为 pytz 的模块 [重复]

twilio - 使用本地(在 NAT 之后)HTTP 服务器

在 Heroku Parse 服务器上安装 Twilio

带有 Supabase 和 Flutter 的 Twilio 将数字解组到 Go 结构字段 SmsStatus.status