node.js - Node/Twilio require 函数中的多个配置变量

我想知道在将 Twilio 用于 Node 时,是否有其他人设法找到使用多个帐户 sid 和身份验证令牌的方法。文档非常简单,我可以将 Twilio 与我自己的凭据一起使用。

但是,在 Twilio 上使用子用户时,我希望能够在购买电话号码的过程中使用他们的凭据。我目前有一个 app.post 路由,它首先获取特定用户的 sid 和 auth 令牌。

let twilioSid = process.env.REACT_APP_TWILIO_ACCOUNT_SID;
let twilioAuthToken = process.env.REACT_APP_TWILIO_AUTH_TOKEN;

let twilioClient = require('twilio')(twilioSid, twilioAuthToken);

在实际“购买”该号码之前,我检索子用户 sid 和身份验证令牌并在调用函数之前更新我的变量,如下所示:

const user = await admin.firestore().collection("users").doc(userId).get()
                
twilioSid = user.data().sid;
twilioAuthToken = user.data().authToken;

const purchase = await twilioClient.incomingPhoneNumbers.create({phoneNumber: number})

购买有效,但仅适用于我的主(父)帐户,凭据存储在 .env 中。在 incomiingPhoneNumbers.create 被调用之前,顶级变量似乎从未真正得到更新。谁能指出我如何使用子用户凭据来运行此功能的正确方向?

回答1

仅在此处更新变量不会起作用,因为您已经初始化了客户端。当您重新初始化客户端(或只是初始化另一个客户端)时,它应该可以工作:

const user = await admin.firestore().collection("users").doc(userId).get()
                
twilioSid = user.data().sid;
twilioAuthToken = user.data().authToken;

twilioClient = require('twilio')(twilioSid, twilioAuthToken);

const purchase = await twilioClient.incomingPhoneNumbers.create({phoneNumber: number})

或者

const user = await admin.firestore().collection("users").doc(userId).get()
                
twilioSid = user.data().sid;
twilioAuthToken = user.data().authToken;

const userClient = require('twilio')(twilioSid, twilioAuthToken);

const purchase = await userClient.incomingPhoneNumbers.create({phoneNumber: number})

相似文章

twilio - DevTools 无法加载源 map

我知道Chrome开发工具中有很多关于这些警告的帖子。对于所有这些,解决方案是关闭通知“启用javascript源maps”和“启用CSS源maps”。我想知道的是如何解决这个问题,以及导致这些警告的...

c - 无法删除C中双向链表的重复数据

我在从双向链表中删除重复数据时遇到问题。所以这个列表的data元素是一个数字数组。我想用这个delete_duplicates代码删除重复数据的节点。我使用以下print_list函数来打印列表。该函...

随机推荐

最新文章