Я звоню в API отчетов Google Analytics , используя google-api-nodejs-client , чтобы показать количество посещений в блоге.
Этот блогнаходится в стандартной среде Google App Engine.
В процессе разработки я аутентифицирую свои вызовы API с помощью учетных данных приложения по умолчанию .Я скачал файл JSON с учетными данными из службы учетных записей, которую создал исключительно для аналитических целей, установил для файла переменную среды Google_Application_Credentials, и все заработало.Я могу получить данные из Google Analytics и отобразить их на веб-сайте.
Но это не работает на производстве.Я полагаю, getClient()
не получает учетные данные в этой среде.
Важно отметить: 1) Я не загружал загруженный файл JSON с учетными данными из учетной записи службы (я думаю, что это противоречит интуиции иэто небезопасно, и, как я понял из документации, GCP может автоматически обрабатывать аутентификации API);
const {google} = require("googleapis");
async function main () {
// This method looks for the GCLOUD_PROJECT and GOOGLE_APPLICATION_CREDENTIALS
// environment variables.
const auth = await google.auth.getClient({
// Scope of the analytics reporting,
// with only reading access.
scopes: 'https://www.googleapis.com/auth/analytics.readonly',
});
// Create the analytics reporting object
const analyticsreporting = await google.analyticsreporting({
version: 'v4',
auth: auth,
});
// Fetch the analytics reporting
const res = await analyticsreporting.reports.batchGet({...});
return res.data;
}
У меня уже нет вариантов.Может ли кто-нибудь помочь мне с этим?