在本地通过谷歌分析接口, 获取网站的访问量统计, 用于在管理端面板世界地图显示
获取分析数据的部分代码,这部分很简单示例有
// 获得前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显示数据