鍍金池/ 問答/PHP  數(shù)據(jù)庫/ 通過access_token獲取關(guān)注用戶列表時 顯示無法進(jìn)行此操作

通過access_token獲取關(guān)注用戶列表時 顯示無法進(jìn)行此操作

在獲取access_token后 通過access_token獲取關(guān)注用戶列表時 顯示無法進(jìn)行此操作 這是什么情況?

$url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=$appid&secret=$appsecret 

";

  $ch = curl_init();
  curl_setopt($ch, CURLOPT_URL, $url);
  curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 
  curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); 
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  $output = curl_exec($ch);
  curl_close($ch);
  $jsoninfo = json_decode($output, true);
  $access_token = $jsoninfo["access_token"];
  //echo $access_token;
  
  //獲取到openid

 
  //獲取用戶列表
  function userlist($access_token){
       $url='https://api.weixin.qq.com/cgi-bin/user/get?access_token=.$access_token.&next_openid=NEXT_OPENID 

';
       $content = $this->request($url);

       $content = json_decode($content);
       $openidList = $content -> data->openid;
       var_dump($openidList);

       echo '關(guān)注人數(shù)為:'.$content->total.'人.<br/>';
       echo 'openid列表為:<br/>';
       foreach($openidList as $key => $value){
           echo $value.'<br/>';
       }
   }
回答
編輯回答
慢半拍

你可能是公眾號沒有認(rèn)證,所以沒有權(quán)限吧!

以下是2018.3.30修改:

第1:你貼的是源碼,不是錯誤代碼!
第2:你的源碼也是不完整的,別人根本沒有辦法調(diào)試!比如:
$content = $this->request($url);
請問:$this是什么對象?request方法的定義是怎樣的?
第3:你的源碼也是存在明顯的錯誤的。在PHP中,單引號里的變量是當(dāng)字符串處理的,所以

$url='https://api.weixin.qq.com/cgi-bin/user/get?access_token=.$access_token.&next_openid=NEXT_OPENID
';

這一句,你請求的網(wǎng)址就真的是:

$url='https://api.weixin.qq.com/cgi-bin/user/get?access_token=.$access_token.&next_openid=NEXT_OPENID

這是不對的,應(yīng)該用雙引號。并且,你的參數(shù)NEXT_OPENID應(yīng)該是個變量,而你這里只是一個大寫字母的字符串!
綜上所述,你的代碼無法獲取用戶信息是正常的,和公眾號權(quán)限無關(guān),是代碼級問題!
最后,附上一段可執(zhí)行的代碼,供你參考:

<?php
$appid='';//寫上你的appid
$appsecret='';//寫上你的密鑰
$url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=$appid&secret=$appsecret";

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ch);
curl_close($ch);
$jsoninfo = json_decode($output, true);
$access_token = $jsoninfo["access_token"];
echo $access_token;

//獲取到openid
userlist($access_token);

//獲取用戶列表
function userlist($access_token){

   $url="https://api.weixin.qq.com/cgi-bin/user/get?access_token=$access_token";
echo 'url'.$url;

   // $content = $this->request($url);
   $content=curl1($url);
   print_r($content);
   $content = json_dcode($content);
   $openidList = $content -> data->openid;
   var_dump($openidList);

   echo '關(guān)注人數(shù)為:'.$content->total.'人.<br/>';
   echo 'openid列表為:<br/>';
   foreach($openidList as $key => $value){
       echo $value.'<br/>';
   }
}

function curl1($url1){

$ch1 = curl_init();
curl_setopt($ch1, CURLOPT_URL, $url1);
curl_setopt($ch1, CURLOPT_SSL_VERIFYPEER, FALSE); 
curl_setopt($ch1, CURLOPT_SSL_VERIFYHOST, FALSE); 
curl_setopt($ch1, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ch1);
curl_close($ch1);
return $output;
}
2017年4月14日 05:09
編輯回答
乞許

錯誤貼出來看看呀

2017年8月6日 06:48