我正在尝试验证使用Twilio发送的代码。目前,发送验证码的功能很好用,但是验证码的功能无法正常工作。
我尝试将参数to
替换为To
,verificationSid
,VerificationSid
,但它们似乎都无法正常工作。
exports.validateVerificationCode = functions.https.onRequest((req, res) => {
var number = req.body.number;
var code = req.body.code;
twilio.verify.services('VA{MY_SERVICE_ID}').verificationChecks.create({
to: number,
code: code
}).then((validation_check) => {
res.status(200).json(validation_check);
}).catch((err) => {
res.status(500).json(err);
console.log(err);
});
});
我希望该功能按照API文档中所示运行,但是我的Firebase控制台不断向我显示
“ [错误:参数无效:收件人] 状态:400”,当我将“ to”替换为“ To”时,出现以下错误“ [错误:必须指定'To'号或'VerificationSid'] 状态:400英寸。
答案 0 :(得分:0)
物联网,您是否检查过to number:是否为E.164格式https://www.twilio.com/docs/glossary/what-e164,并且您使用的是Twilio Node SDK帮助器库的最新版本? https://github.com/twilio/twilio-node/blob/master/CHANGES.md。
我的工作代码看起来非常相似,所以我认为它是上面两个问题之一(我已使用Twilio Node Helper Library 3.31.1进行了测试)。
exports.handler = function(context, event, callback) {
const client = context.getTwilioClient();
const code = event.code;
let phoneNumber = event.phoneNumber;
client.verify.services('VA1exxxxxxbc6e02520c585xxxxxxxxxx')
.verificationChecks
.create({to: phoneNumber, code: code})
.then(verification_check => {
console.log(`***VERIFICATION STATUS***: ${verification_check.status}`);
// Object.keys(verification_check).forEach(thisKey => console.log(`${thisKey}: ${verification_check[thisKey]}`));
callback(null, `${verification_check.status}`);
})
.catch(err => {
console.log(err);
callback();
});
};