I want to make a request to the Google Search Console API (to get clicks, impressions, etc.). But I keep getting a 401 error saying that API keys are not supported by this API. I understand this and I'm still quite new to JavaScript. I am interested in how I can access the data using the API via OAuth 2 authorization. I've done everything I need in console.cloud.google.com. And I even manage to make requests and receive data, but only developers.google.com(GSC API query). I would like to do this through Javascript code. Tell me what needs to be changed in the code so that I can get the data, and not the 401 error? In other words, how to remove authorization via API key, and leave it only via OAuth 2?
<script src="https://apis.google.com/js/api.js"></script>
<script>
/**
* Sample JavaScript code for webmasters.searchanalytics.query
* See instructions for running APIs Explorer code samples locally:
* https://developers.google.com/explorer-help/code-samples#javascript
*/
function authenticate() {
return gapi.auth2.getAuthInstance()
.signIn({scope: "https://www.googleapis.com/auth/webmasters https://www.googleapis.com/auth/webmasters.readonly"})
.then(function() { console.log("Sign-in successful"); },
function(err) { console.error("Error signing in", err); });
}
function loadClient() {
gapi.client.setApiKey("YOUR_API_KEY");
return gapi.client.load("https://content.googleapis.com/discovery/v1/apis/searchconsole/v1/rest")
.then(function() { console.log("GAPI client loaded for API"); },
function(err) { console.error("Error loading GAPI client for API", err); });
}
// Make sure the client is loaded and sign-in is complete before calling this method.
function execute() {
return gapi.client.webmasters.searchanalytics.query({
"siteUrl": "MyURL",
"resource": {
"startDate": "2022-05-01",
"endDate": "2022-05-31"
}
})
.then(function(response) {
// Handle the results here (response.result has the parsed body).
console.log("Response", response);
},
function(err) { console.error("Execute error", err); });
}
gapi.load("client:auth2", function() {
gapi.auth2.init({client_id: "YOUR_CLIENT_ID"});
});
</script>
<button onclick="authenticate().then(loadClient)">authorize and load</button>
<button onclick="execute()">execute</button>