微信購読番号開発ノート(五)


1、ユーザー管理
//      
public function queryGroups(){
$url = "https://api.weixin.qq.com/cgi-bin/groups/get?access_token=";
$url.=$this->getacctoken();
$result = $this->cget($url);
header("Content-type: text/html; charset=utf-8");
print_r($result);
}
//    
public function createGroup(){
$url="https://api.weixin.qq.com/cgi-bin/groups/create?access_token=";
$url.=$this->getacctoken();
$postData='{"group":{"name":"test"}}';
$result = $this->cpost($url,$postData);
header("Content-type: text/html; charset=utf-8");
print_r($result);
}
//        
public function queryGroup(){
$url="https://api.weixin.qq.com/cgi-bin/groups/getid?access_token=";
$url.=$this->getacctoken();
$postData='{"openid":"openId"}';
$result = $this->cpost($url,$postData);
header("Content-type: text/html; charset=utf-8");
print_r($result);
}
//     
public function updateGroup(){
$url="https://api.weixin.qq.com/cgi-bin/groups/update?access_token=";
$url.=$this->getacctoken();
$postData='{"group":{"id":100,"name":"atest"}}';
$result = $this->cpost($url,$postData);
header("Content-type: text/html; charset=utf-8");
print_r($result);
}
//      
public function moveGroup(){
$url="https://api.weixin.qq.com/cgi-bin/groups/members/update?access_token=";
$url.=$this->getacctoken();
$postData='{
"openid": "openId",
"to_groupid": 100
}';
$result = $this->cpost($url,$postData);
header("Content-type: text/html; charset=utf-8");
print_r($result);
}
//        
public function queryUserInfo(){
$url = "https://api.weixin.qq.com/cgi-bin/user/info?lang=zh_CN&access_token=";
$url.=$this->getacctoken();
$url.="&openid="."openId";
$result = $this->cget($url);
header("Content-type: text/html; charset=utf-8");
echo json_encode($result);
}
//       
public function queryUserList(){
//https://api.weixin.qq.com/cgi-bin/user/get?access_token=ACCESS_TOKEN&next_openid=NEXT_OPENID
$url = "https://api.weixin.qq.com/cgi-bin/user/get?access_token=";
$url.=$this->getacctoken();
$result = $this->cget($url);
$r = json_encode($result);
$next_openid=$r['next_openid'];
if(!empty($next_openid)){
}
header("Content-type: text/html; charset=utf-8");
echo $r ;
}

2、ホームページ授権によるユーザー基本情報の取得
 
具体的には、Web認証プロセスは4つのステップに分けられます.
  • ユーザーをライセンスページに誘導ライセンスに同意し、code
  • を取得する.
  • codeによるWebページのライセンスアクセスtoken(ベースサポートのaccess_tokenとは異なる)
  • 必要に応じて、開発者はウェブライセンスaccessをリフレッシュすることができる.token、期限切れを避ける
  • Web認証によるアクセスtokenおよびopenidは、ユーザ基本情報
  • を取得する
     
    public function index(){
    //1、          
    $url = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=";
    $redirect_uri="YOU URL";
    $redirect_uri=urlencode($redirect_uri);
    $url.=$redirect_uri."&response_type=code&scope=snsapi_userinfo&state=a#wechat_redirect";
    $this->assign ( 'userurl', $url );
    $this->display();
    }
    public function success(){
    //2、         code , code  access_token
    $code = I ( 'get.code' );
    //echo $code;
    $geturl = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=";
    $geturl.=$code."&grant_type=authorization_code";
    $ch=curl_init();
    curl_setopt($ch,CURLOPT_URL,$geturl);
    curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
    curl_setopt($ch,CURLOPT_HEADER,0);
    $output = curl_exec($ch);
    curl_close($ch);
    //echo json_decode($output,true);
    $returnObj = json_decode($output,true);
    //echo $returnObj['access_token'];
    //3、  access_token(    )
    //4、      ( scope  snsapi_userinfo)
    $geturl ="";
    $geturl=" https://api.weixin.qq.com/sns/userinfo?access_token=";
    $geturl.=$returnObj['access_token']."&openid=".$returnObj['openid']."&lang=zh_CN";
    $ch=curl_init();
    curl_setopt($ch,CURLOPT_URL,$geturl);
    curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
    curl_setopt($ch,CURLOPT_HEADER,0);
    $output = curl_exec($ch);
    curl_close($ch);
    //echo json_decode($output,true);
    $userObj = json_decode($output,true);
    $this->assign ( 'userObj', $userObj );
    $this->display();
    }