Node/Twilio require 函数中的多个配置变量

Node/Twilio multiple config variables in require function

我想知道在将 Twilio 用于 Node.文档非常简单明了,我可以使用我自己的凭据使用 Twilio。

但是,在 Twilio 上使用子用户时,我希望能够在购买 phone 号码的过程中使用他们的凭据。我目前有一个 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 和 auth 令牌并在调用函数之前更新我的变量,如下所示:

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 被调用之前,顶级变量从未真正得到更新。谁能指出我如何使用子用户凭据来 运行 此功能的正确方向?

仅更新​​变量在这里不起作用,因为您已经初始化了客户端。它应该在您重新初始化客户端(或只是初始化另一个客户端)时起作用:

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