在本地通过谷歌分析接口, 获取网站的访问量统计, 用于在管理端面板世界地图显示
获取分析数据的部分代码,这部分很简单示例有
// 获得前10个页面浏览量与页面标题在过去30天
const {BetaAnalyticsDataClient} = require('@google-analytics/data');
const analyticsDataClient = new BetaAnalyticsDataClient();
const [response] = await analyticsDataClient.runReport({
property: `properties/${propertyId}`,
dateRanges: [
{
startDate: "30daysAgo",
endDate: "today"
}
],
dimensions: [
{
name: "pageTitle"
},
{
name: "pagePath"
}
],
metrics: [
{
name: "screenPageViews"
}
],
limit: 20,
MetricOrderBy: [
{
desc: true,
metric: {
metricName: "value"
}
}
]
});
由于墙的原因,本地无法访问所以调用时会报错
Error: 14 UNAVAILABLE: No connection established. Last error: connect ETIMEDOUT 142.251.42.234:443 (2024-02-19T06:15:57.073Z)
方案一: 部署到外部服务器
部署之后能用, 但是缺点也很明显, 本地开发调试什么的都很不方便
方案二: 本地代理
代码里加入下面一行代码
process.env.HTTP_PROXY = 'http://proxyhost:port'; // 为 non-SSL request做代理
我是在app.js判断是否为本地环境,是才进行代理
if (process.env.NODE_ENV == "local") {
process.env.HTTP_PROXY = "http://127.0.0.1:7890";
}
每个代理工具不同,我在右下角图标 -> 右键 -> 复制环境变量
得到
export https_proxy=http://127.0.0.1:7890 http_proxy=http://127.0.0.1:7890 all_proxy=socks5://127.0.0.1:7890
最终效果
用jquery-jvectormap显示数据