配置LeanCloud的网站统计

前言

利用Fluid主题,可以设置显示网站的浏览量,借助LeanCloud国际版的数据存储即可无需备案完成这一步。但是在实际部署过程中发现并不能正常获取LeanCloud的数据。

问题发现

按照Fluid的官方文档,将LeanCloud的AppID、AppKey并开启“展示PV与UV统计”后,网站并没有正常显示统计信息

左:当前状况;右:正常状况

查看网页源代码时出现报错:

1
[Error] Fetch API cannot load https://xxxx.api.lncldglobal.com/1.1/classes/Counter?where=%7B%22target%22%3A%22site-pv%22%7D due to access control checks.

尝试访问该链接,提示:Access denied Error code 1020

解决过程

问题分析

出现这个问题的原因是国际版LeanCloud的RestAPI禁止国内用户直接访问,使用中国版LeanCloud即可解决这个问题。

但是,使用国际版的初衷就是为了免去备案这一过程,既然不能直接访问,如果手头又有自己的域名,那么在这之上利用DNS加速不就可以了嘛!

具体操作

首先,访问LeanCloud的控制面板,进入指定应用,点击设置-域名绑定,在API访问域名中点击绑定新域名,想好一个DNS记录名称并填入域名栏,点击绑定即可

之后,在控制面板内会提示设置DNS

记下配置并转到DNS供应商进行设置(此处以CloudFlare为例)

使用CloudFlare部署DNS时,请不要勾选代理,否则会出现如下情况:

配置完成后,等待一段时间进行部署证书,出现如下提示就可以了

最后一步,就是在主题的设置中将刚才的地址填入RestAPI就大功告成了!

1
2
3
4
5
6
leancloud:
app_id: xxx
app_key: xxx
# REST API 服务器地址,国际版不填
# Only the Chinese mainland users need to set
server_url: "https://xxx.xxx.xxx"

此方法同样适用于其他类型对于LeanCloud使用的情况,不仅限于Fluid主题

如果出现统计信息不增加的情况,请检查LeanCloud内的Counter Class的ACL权限是否为无限制,或者是否有相对应的权限和密钥

后记

其实,在Fluid的配置中,我们完全可以使用busuanzi(不蒜子)的统计信息,完全不需要配置,但是在实际应用过程中他的统计信息不准确,并且存在同一个ip标记多个访客的现象。目前来看,使用LeanCloud的统计差错很小,相对于busuanzi来说精确了不少,所以最后我选择了放弃busuanzi而使用LeanCloud的统计