gpt4 book ai didi

google-app-engine - 在 App Engine 上使用 Google 应用程序默认凭据时出错

转载 作者:太空宇宙 更新时间:2023-11-03 15:26:04 25 4
gpt4 key购买 nike

我正在尝试使用 Google Application Default Credentials 使 Node.js 应用程序(在 App Engine 上运行 Express)通过 Google API(服务器到服务器)进行身份验证.该应用程序应该使用凭据与 Google Analytics 对话,我通过在 Google Developers Console 中打开 Analytics API 来设置它。这是我实现的代码:

var google = require('googleapis')
var analytics = google.analytics('v3')

app.post('/getAnalyticsData', (req, res) => {
google.auth.getApplicationDefault(function(err, authClient) {
if (err) {
/* Handle error */
}
if (authClient) {
if (authClient.createScopedRequired && authClient.createScopedRequired()) {
authClient = authClient.createScoped(['https://www.googleapis.com/auth/analytics.readonly'])
}
analytics.data.ga.get({
'auth': authClient,
'ids': 'ga:VIEW_ID',
'metrics': 'ga:pageviews,ga:sessions',
'start-date': '2017-01-01',
'end-date': '2017-03-09'
}, function(err, response) {
if (err) {
console.log("Analytics error: ", err)
}
if (response) {
console.log("YAY! Analytics response: ", response)
/* Do something with the response */
}
})
}
})
})

但我收到此错误:尝试检索 Compute Engine 内置服务帐户的访问 token 时返回了禁止错误。这可能是因为 Compute Engine 实例没有指定正确的权限范围。权限不足

知道如何解决这个问题并成功通过身份验证吗?

最佳答案

我在尝试使用 google-auth-library 连接到数据存储时遇到了同样的错误,并且无法为默认服务帐户设置正确的权限。我找到了一个 example在他们使用 key 文件创建身份验证客户端的示例文件夹中。您可以使用正确的权限创建自己的服务帐户,并在 service account admin page 上生成 key 文件。在云控制台中。希望这会有所帮助。

const {auth} = require('google-auth-library');

async function getDnsInfo() {
const client = await auth.getClient({
keyFile: 'path/to/keyFile.json,
scopes: 'https://www.googleapis.com/auth/cloud-platform',
});
const projectId = await auth.getProjectId();
const url = `https://www.googleapis.com/dns/v1/projects/${projectId}`;
const res = await client.request({url});
console.log('DNS Info:');
console.log(res.data);
}

关于google-app-engine - 在 App Engine 上使用 Google 应用程序默认凭据时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47413923/

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