关注微信公众号使其自动发送欢迎你关注消息
一般我们关注微信公众号时。他都会自动推送一条消息。欢迎您关注了某公众号。而今天我们所做的就是这个功能。
关注公众号时我们需要获取到用户的一些个人基本信息。 而获取基本信息就要看他的运行原理。到底是怎么运行。
当我们申请了一个微信号时,关注公众号,公众号会推送我们的关注事件给我们服务器。而我们服务器又没有用户信息。但是当我们注册微信号时。一些信息会存放再腾讯服务器上。而腾讯服务器为了方便我们也给我们提供了一个获取用户信息的api。我们调用这个api就可以获取到用户的信息。
而调用获取用户信息接口的时候。我们发现了有一个必填参数时access_token,所有现在我们就必须要先去获取到access_token。
tips:而我们这里也要注意access_token的一些特性:
access_token的存储至少要保留512个字符空间
access_token的有效期目前为2个小时,需定时刷新
Access_token 每天能被调用的次数很少
重复获取将导致上次获取的access_token失效。
所以我们需要去服务器建一个数据库去用来存放access_token还有一会要获取到的用户基本信息
一、服务器上建立数据库
使用navicat链接linux上的数据库
建立后测试链接看是否可以正常连接上数据库
如果出现上述的错误。原因是因为我们mysql是一个安全性能较高的软件,不能说任何人都可以连接。我们要想连接需要mysql服务器给我们的客户端进行授权。所以我们要进入linux系统中通过mysql命令进入到mysql服务器中
让mysql服务器给要链接的客户端授权
mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '密码' WITH GRANT OPTION;
如果还有错误在阿里云服务器在安全组中添加一个安全记录
云服务器ecs—找到实例—安全组—配置规则添加即可。
完后建立我们的表就好。
二、获取access_token
调用access_token接口需要得到三个必须参数
apiid和secret在
之后获取
//获取access_token
public function get_access_token(){
//刚进来先判断数据库中是否有access
$access = AccessToken::orderBy("id","desc")->first();
//数据库中没有或者时间超过了7000s 则重新获取access
if(!$access || time()-$access->access_token_time > 7000){
//获取appid
$appid = "wx1d72e376cd0e0cea";
//获取secret
$secret = "bc0f301236d4db2b20db3dc7cea63c14"