Twilio可编程语音-使用Webhooks通过node.js进行身份验证

问题描述

我目前正在使用twilio语音处理Node.js(带有Express)应用程序。 我想使用webhooks保护应用程序的端点。

在twilio中,我的电话号码通过以下方式配置:

enter image description here

我想使用Twilio SDK提供的webhook中间件来保护/ api / getPin路由,并遵循以下文档:https://www.twilio.com/docs/usage/tutorials/how-to-secure-your-express-app-by-validating-incoming-twilio-requests

我的编码如下所示(我将凭据存储在环境变量中):

require('dotenv').config();
const express = require('express');
const bodyParser = require('body-parser');
const TwilioClient = require('twilio')(process.env.TWILIO_ACCOUNT_SID,process.env.TWILIO_AUTH_TOKEN);
const app = express();
app.use(bodyParser.urlencoded({extended: true}));

app.post('/api/getPin',TwilioClient.webhook(),async (req,res) => {
    try {
        // Logic to get entered pin
    } catch (err) {
        res.status(500).json({success: false,message: err.message});
    }
});

仅当将身份验证中间件添加到路由时,该逻辑才能正常工作,我得到以下错误:

app.post('/api/getPin',res) => {
                                     ^

TypeError: TwilioClient.webhook is not a function
    at Object.<anonymous> (/var/www/html/twilio/server/index.js:299:38)
    at Module._compile (internal/modules/cjs/loader.js:778:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
    at Module.load (internal/modules/cjs/loader.js:653:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
    at Function.Module._load (internal/modules/cjs/loader.js:585:3)
    at Function.Module.runMain (internal/modules/cjs/loader.js:831:12)
    at startup (internal/bootstrap/node.js:283:19)
    at bootstrapNodeJSCore (internal/bootstrap/node.js:622:3)
[nodemon] app crashed - waiting for file changes before starting...

我的实现中有什么问题?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)