Я хотел узнать, возможно ли использовать учетную запись службы для запроса данных из любого API Google, но используя эту библиотеку: https://github.com/google/google-api-javascript-client
Мне удалось выяснить, как использовать библиотеку с учетными данными OAuth2.0 из облачной консоли Google. Но моя настоящая потребность требует, чтобы я использовал служебную учетную запись для извлечения этих данных.
Вот код, который я использовал для извлечения данных из учетных данных OAuth2.0:
initClient() {
return gapi.client.init({
apiKey: this.GSC_API_KEY, // already defined in the application
client_id:
"xxxxxxxxxxxxxxxxx.apps.googleusercontent.com",
scope:
"https://www.googleapis.com/auth/webmasters https://www.googleapis.com/auth/webmasters.readonly",
discoveryDocs: [
"https://www.googleapis.com/discovery/v1/apis/webmasters/v3/rest"
]
});
},
gapiList() {
this.initClient()
.then(() => {
// Executes an API request, and returns a Promise.
// The method name `webmasters.sites.list` comes from the API webmasters.
return gapi.client.webmasters.sites.list();
})
.then(
response => {
console.log(response.body);
},
err => {
console.error(err.details);
}
);
},
Вот код, который запрашивает API:
gapi.load("client", this.gapiList);
Он возвращает мне хорошие данные.
Но моя конечная цель требует, чтобы я использовал служебную учетную запись.
Функция initClient действительно требует client_id загрузить правильно. Если я даю client_id учетной записи службы, она возвращает мне ошибку.
"Not a valid origin for the client: http://localhost:8080/ has not been whitelisted for client ID xxxxxxxxxxxxx. Please go to https://console.developers.google.com/ and whitelist this origin for your project's client ID.
В сообщении об ошибке говорится, что я помещаю в белый список локальный хост (где я сейчас работаю), но я не нахожу Как добавить локальный хост в учетную запись службы.
Надеюсь, я предоставил достаточно информации.
Спасибо за любой ответ и помощь.