最近要做一個微信平台的投票活動,需要在關注公眾號之後才能參與投票,那麼,如何判斷用戶是否關注了公眾號呢?
第一想法是,通過獲取公眾號的關注列表,然後搜索列表中是否有參與者的openid。
但是馬上發現一個問題,就是這種方法需要每次都要獲取一下關注列表,而且,當公眾號的粉絲比較多時,這種方法就比較吃力了。
下面使用php方法,判斷用戶是否關注了公眾號:
<?php $access_token = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=XXXXXXXXXXXXXXXXXX&secret=XXXXXXXXXXXXXXXXXXXXXXXXXX"; $access_msg = json_decode(file_get_contents($access_token)); $token = $access_msg->access_token; $subscribe_msg = "https://api.weixin.qq.com/cgi-bin/user/info?access_token=$token&openid=$_GET[openid]"; $subscribe = json_decode(file_get_contents($subscribe_msg)); $gzxx = $subscribe->subscribe; // if($gzxx === 1){ echo "已關注"; }else{ echo "未關注"; }
下面是第二個代碼案例
< ? php $access_token = $this - > _getAccessToken(); $subscribe_msg = 'https://api.weixin.qq.com/cgi-bin/user/info?access_token='.$access_token.'&openid='.$_SESSION['wecha_id']; $subscribe = json_decode($this - > curlGet($subscribe_msg)); $zyxx = $subscribe - > subscribe; if ($zyxx !== 1) { echo'未關注!'; } private function _getAccessToken() { $where = array('token' = > $this - > token); $this - > thisWxUser = M('Wxuser') - > where($where) - > find(); $url_get = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid='.$this - > thisWxUser['appid'].'&secret='.$this - > thisWxUser['appsecret']; $json = json_decode($this - > curlGet($url_get)); if (!$json - > errmsg) { } else { $this - > error('獲取access_token發生錯誤:錯誤代碼'.$json - > errcode.',微信返回錯誤信息:'.$json - > errmsg); } return $json - > access_token; } ? >
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持幫客之家。