是否可以通过编程方式从启用了 api 的服务帐户凭据中检索? (在nodejs中,不是云环境)

Is it possible to programmatically retrieve from serviceaccount credentials which api's are enabled? (in nodejs, not the cloud environment)

我有一个包含 client_email 和 private_key 的服务帐户凭据 json 文件。 然后是否可以通过编程方式从启用了 api 的 serviceaccount 凭据中检索?我的意思不是像转到 console.cloud.google.com 那样的解决方案,而是来自 nodejs 的解决方案。谢谢!

Google 有一个 API Gateway Client Library for NodeJS 具有所需的能力

const projectId = 'my-project';
const {ApiGatewayServiceClient} = require('@google-cloud/api-gateway');
const client = new ApiGatewayServiceClient();
async function listApis() {
  const [apis] = await client.listApis({
    parent: `projects/${projectId}/locations/global`,
  });
  for (const api of apis) {
    console.info(`name: ${api.name}`);
  }
}
listApis();

您还需要知道项目 ID。 @wardenunleashed 的答案是 API 网关。这不包括启用了哪些 Google API。

API每个项目都启用,因此您必须指定要查询的项目。

服务帐户 JSON 密钥文件包含拥有该服务帐户的项目的项目 ID。

private_key_id也很重要。该 ID 用于查找 public 密钥以验证私钥签名。