我正在尝试获取Google Analytics API的访问令牌。
在开发人员控制台中创建项目并向Analytics API授予访问权限后,我进入了“创建凭据”步骤,并为Web应用程序创建了新凭据。
在这些凭据上,我将Javascript起源设置为http://localhost:8080,也将其设置为http://localhost:5000。然后,我将授权的重定向URI设置为http://localhost:8080/oauth2callback和http://localhost:5000/oauth2callback。
然后,当我尝试授权时,要求我输入我的clientId和密码,然后打开新的浏览器选项卡,并要求我选择一个帐户,然后选择“允许”。
>我还尝试为“其他”应用程序类型创建凭据,但是发生了完全相同的事情。
我在堆栈上发现了很多与此有关的帖子,但是没有一个答案能够解决我的问题。不知道要提供哪些其他信息。我什至尝试清除历史记录并使用其他浏览器,但没有成功。
如何使用OAuth将应用程序授权授予Google Analytics(分析)?
答案 0 :(得分:0)
此问题与localhost或重定向uris或JavaScript起源无关。问题是您的代码未设置为处理来自身份验证服务器的回叫。如果您发布了代码,将会有所帮助,因此很难知道问题出在哪里。
您应该在Hello analytics js tutorial
上查看官方示例<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Hello Analytics Reporting API V4</title>
<meta name="google-signin-client_id" content="<REPLACE_WITH_CLIENT_ID>">
<meta name="google-signin-scope" content="https://www.googleapis.com/auth/analytics.readonly">
</head>
<body>
<h1>Hello Analytics Reporting API V4</h1>
<!-- The Sign-in button. This will run `queryReports()` on success. -->
<p class="g-signin2" data-onsuccess="queryReports"></p>
<!-- The API response will be printed here. -->
<textarea cols="80" rows="20" id="query-output"></textarea>
<script>
// Replace with your view ID.
var VIEW_ID = '<REPLACE_WITH_VIEW_ID>';
// Query the API and print the results to the page.
function queryReports() {
gapi.client.request({
path: '/v4/reports:batchGet',
root: 'https://analyticsreporting.googleapis.com/',
method: 'POST',
body: {
reportRequests: [
{
viewId: VIEW_ID,
dateRanges: [
{
startDate: '7daysAgo',
endDate: 'today'
}
],
metrics: [
{
expression: 'ga:sessions'
}
]
}
]
}
}).then(displayResults, console.error.bind(console));
}
function displayResults(response) {
var formattedJson = JSON.stringify(response.result, null, 2);
document.getElementById('query-output').value = formattedJson;
}
</script>
<!-- Load the JavaScript API client and Sign-in library. -->
<script src="https://apis.google.com/js/client:platform.js"></script>
</body>
</html>