通过 api 获取谷歌分析报告
Posted
技术标签:
【中文标题】通过 api 获取谷歌分析报告【英文标题】:get google analytics report by api 【发布时间】:2020-03-19 02:58:10 【问题描述】:我正在制作一个像 Flippa 这样的网站来销售已建立的网站,我想像 Flippa 一样验证网站流量,我搜索了如何获取过去 12 个月的访问报告,但我做不到,我做了什么让客户点击链接
https://accounts.google.com/o/oauth2/auth?access_type=offline&client_id=814867900881-28dlacj0v68nh9suspfjlnvjgscalaql.apps.googleusercontent.com&prompt=consent&redirect_uri=http://localhost:3000/redirect&response_type=code&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fanalytics.readonly&state=9612
获取代码,然后使用该代码获取 access_token
POST https://accounts.google.com/o/oauth2/token
code=4/gXCN77EWLDCO_fake_p2tvfakezOg6Mn0fakej2vA.giyP3fakejxeAeYFZr95uygvU3j0dumQI&
client_id=104608secret-secret-secret-secret.apps.googleusercontent.com&
client_secret=90V0FAKE_WkFAKExrHCZti&
redirect_uri=http://www.mywebapp.com/oauth2callback&
grant_type=authorization_code
然后我得到访问令牌
"access_token": "ya29.Il-yBwla5jnTECDlX5rbVk_Oq4hireOUmSzeaTWW2BgYYsBCoPn6pKnQVxIUQtGc0BXblEq_2ZQ-zhrrGeL9xYYuSyd8lvRAoPBUVKUN8liBwx-w8ok2oGh2Cknql2ucew",
"expires_in": 3600,
"refresh_token": "1//031hXU_jNeKEECgYIARAAGAMSNwF-L9Irds9iUaPkcGDDOSHP2-8-1FKYBRW1GaBz1fLzEoDnEcNIm89k-bZzYWXAqie5Or-Fg94",
"scope": "https://www.googleapis.com/auth/analytics.readonly",
"token_type": "Bearer"
并且不知道我接下来要做什么以及我所做的是否正确 我需要正确的方法来获取用户 GA 报告
【问题讨论】:
【参考方案1】:到目前为止,您所做的工作涵盖了您的身份验证流程。现在您需要调用 Analytics Reporting API 并提供您创建的访问令牌。 以下是设置您的请求的参考: https://developers.google.com/analytics/devguides/reporting/core/v4/rest/v4/reports/batchGet 还有一些关于如何请求数据的示例。
【讨论】:
【参考方案2】:根据您拥有的系统,这可能会有所帮助。 https://developers.google.com/analytics/devguides/reporting/core/v4
本质上,您在 google 客户端中添加访问令牌,然后执行请求。
对于 node.js,我发现这个站点在 node.js 中具有特殊功能,尽管它使用 JWT。 https://flaviocopes.com/google-analytics-api-nodejs/
const google = require('googleapis')
const scopes = 'https://www.googleapis.com/auth/analytics.readonly'
const jwt = new google.auth.JWT(process.env.CLIENT_EMAIL, null, process.env.PRIVATE_KEY, scopes)
const view_id = 'XXXXX'
async function getData()
const response = await jwt.authorize()
const result = await google.analytics('v3').data.ga.get(
'auth': jwt,
'ids': 'ga:' + view_id,
'start-date': '30daysAgo',
'end-date': 'today',
'metrics': 'ga:pageviews'
)
console.dir(result)
getData()
另外,Node.js 的谷歌 API 供参考:https://www.npmjs.com/package/googleapis
它包含如何将访问令牌设置为 oauth2Client 并在 API 中使用这些令牌。
希望这会有所帮助:)
【讨论】:
我收到“消息”:“用户对此配置文件没有足够的权限。”, 您是否可以在控制台的分析设置中允许它。我见过一些类似的问题,他们的解决方案是使用 VIEW id。 ***.com/questions/14525565/…以上是关于通过 api 获取谷歌分析报告的主要内容,如果未能解决你的问题,请参考以下文章