gpt4 book ai didi

google-analytics - 谷歌分析嵌入API : How to Auto-Authenticate?

转载 作者:行者123 更新时间:2023-12-03 03:29:00 25 4
gpt4 key购买 nike

我正在使用 Google Analytics Embed API 在自定义仪表板上嵌入一些 GA 数据。我正在使用演示站点中的方法:

https://ga-dev-tools.appspot.com/embed-api/

gapi.analytics.auth.authorize({
container: 'embed-api-auth-container',
clientid: 'MY CLIENT ID',
});

这很好用。但它要求用户在看到数据之前进行身份验证。如何解决此问题或使用此方法自动进行身份验证(这样任何可以访问该页面的人都不必登录)?

最佳答案

我想在我的管理仪表板中使用 Google Analytics Embed。几个小时后,在 stackoverflow 上搜索类似的帖子以及通过谷歌搜索找到的任何其他网站,我已经解决了我的身份验证问题。然后我想分享。

首先,您知道,您需要一些凭据。从 https://console.developers.google.com 获取您的 client_id 和 client_secret key 。将您的网站(example.com)添加到经过身份验证的 js 源...并按照说明操作...

其次,转到https://developers.google.com/oauthplayground/并选择 api (Google Analytics Reporting API v4) 检查 https://www.googleapis.com/auth/analyticshttps://www.googleapis.com/auth/analytics.readonly这很重要:在按授权 API 按钮之前,您应该按页面右上角的设置按钮。然后在设置弹出窗口中选中“使用您自己的 OAuth 凭据”并写入您自己的 client_id client_secret现在您可以按“授权 API”按钮。然后按“将授权代码交换为 token ”按钮并复制刷新 token 代码。看起来像 1/gwPrtXcdqpC_pDXXXXXXXXXXXXXXXXXXzvVA。

所以你有client_id、client_secret和refresh_token(由你自己的身份验证通过设置弹出窗口获取)

让我们看看 JavaScript 代码:

当然要加上

<script>
(function (w, d, s, g, js, fs) {
g = w.gapi || (w.gapi = {}); g.analytics = { q: [], ready: function (f) { this.q.push(f); } };
js = d.createElement(s); fs = d.getElementsByTagName(s)[0];
js.src = 'https://apis.google.com/js/platform.js';
fs.parentNode.insertBefore(js, fs); js.onload = function () { g.load('analytics'); };
}(window, document, 'script'));
</script>

然后您可以使用此脚本作为示例:

<script>

//CX Google Auth Process
var client_id = "111XXXXXXXXXXXXXXXXson.apps.googleusercontent.com";
var client_secret = "edXXXXXXXXXXXXXXXXabW";

function CXAuth(parameters) {
var credits= { client_secret: client_secret, grant_type: 'refresh_token', refresh_token: '1/AXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXi7', client_id: client_id };
$.ajax({
type: "POST",
url: "https://www.googleapis.com/oauth2/v4/token",
contentType: "application/x-www-form-urlencoded",
data: credits,
dataType: "json",
success: function (credits) {
//console.log("CX Auth success");

gapi.analytics.auth.authorize({
serverAuth: {
"access_token": credits.access_token,
"expires_in": credits.expires_in,
"token_type": credits.token_type
},
container: 'embed-api-auth-container', //Your auth div id in html
clientid: client_id,
clientsecret: client_secret
});

}, error: function (xhr, textStatus, errorThrown) {
console.log("cx ajax post error:" + xhr.statusText);
}
});
}

gapi.analytics.ready(function () {

CXAuth();

//CX Get your ids no from https://ga-dev-tools.appspot.com/query-explorer/

var report = new gapi.analytics.report.Data({
query: {
ids: 'ga:18XXXXX', //Your ids no
//CX ga:visits,ga:sessions,ga:users for Tekil kullanıcı Sayısı-Unique user count
metrics: 'ga:pageviews', // Not unique user count
dimensions: 'ga:date',
'start-date': '2018-01-01',
'end-date': 'today'
}
});

var total = 0;
report.on('success', function handleCoreAPIResponse(resultsAsObject) {
if (resultsAsObject.rows.length > 0) {
resultsAsObject.rows.forEach(function pushNumericColumn(row) {
total = Number(total) + Number(row[1]);
});
document.getElementById("totalCounter").textContent = total;
}
});
report.execute();


var dataChart = new gapi.analytics.googleCharts.DataChart({
query: {
'ids': 'ga:18XXXXX', // <-- Replace with the ids value for your view.
'start-date': '30daysAgo',
'end-date': 'today',
'metrics': 'ga:sessions,ga:users',
'dimensions': 'ga:date'
},
chart: {
'container': 'site_statistics', //Your div id
'type': 'LINE',
'options': {
'width': '100%'
}
}
});


//CX Responsive Google Charts
window.addEventListener('resize', function () {
dataChart.execute();
});
$(document).ready(function () {
dataChart.execute();
});


});


</script>

最后在你的html中像这样:

<div id="embed-api-auth-container"></div>
<div id="site_statistics" class="chart"> </div>
<div id="totalCounter">0</div >

如果所有步骤正确,您可以通过管理仪表板上的 js 获取自动刷新 token ,而无需每次都手动按下登录按钮。

关于google-analytics - 谷歌分析嵌入API : How to Auto-Authenticate?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29585581/

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