gpt4 book ai didi

node.js - 尝试更新帐单信息时获取 "The caller does not have permission"

转载 作者:行者123 更新时间:2023-12-04 12:22:16 26 4
gpt4 key购买 nike

我正在尝试以编程方式更新我的一个项目的结算帐户。我正在为 googleapis REST 使用 Node 客户端库。这是我的代码:

const { google } = require('googleapis');
const cloudbilling = google.cloudbilling('v1');
async function main() {
let authClient;
try {
authClient = await authorize();
console.log('AUTH', authClient);
} catch (err) {
console.error(err);
}
const request = {
name: "projects/rensi-28",
requestBody: {
billingAccountName: "billingAccounts/My Billing Account"
}

};
google.options({auth: authClient});
try {
const response = (await cloudbilling.projects.updateBillingInfo(request)).data;
console.log(JSON.stringify(response, null, 2));
} catch (err) {
console.error('error:', err);
}

}
main();

async function authorize() {
const auth = new google.auth.GoogleAuth({
scopes: ['https://www.googleapis.com/auth/cloud-platform']
});
return await auth.getClient();
}
这是我得到的错误:
errors: [
{
message: 'The caller does not have permission',
domain: 'global',
reason: 'forbidden'
}
]
我正在使用服务帐户并且正确设置了环境变量,因为我可以创建项目并使用其他 API。
我的服务帐户具有以下角色:


等级
角色


项目
项目计费经理

项目
所有者

组织
结算帐号管理员

组织
结算帐号创建者

组织
项目计费经理

组织
结算帐户查看器

组织
所有者

结算帐号
结算帐号管理员

结算帐号
结算帐号用户

结算帐号
结算帐户查看器


如果使用相同的服务帐户从 gcloud 启用计费,则它可以工作:
gcloud alpha billing projects link p001  --billing-account 45FG32-45FG32-45FG32
gcloud alpha billing projects link p001  --billing-account 45FG32-45FG32-45FG32
billingAccountName: billingAccounts/45FG32-45FG32-45FG32
billingEnabled: true
name: projects/p001/billingInfo
projectId: bxtrb-rensi-28
我错过了什么?

最佳答案

billingAccountName的格式是不正确的。
使用格式 billingAccounts/45FG32-45FG32-45FG32 .
引用:ProjectBillingInfo .

关于node.js - 尝试更新帐单信息时获取 "The caller does not have permission",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67739147/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com