我想知道在将 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})