많은 개발자는 WeChat 공식 계정을 개발할 때 사용자의 아바타를 얻어야 합니다. 개인 WeChat 계정인 경우 WeChat 공식 계정의 모든 인터페이스 권한을 얻으려면 "공개 플랫폼 테스트 계정"을 신청해야 합니다.
먼저 WeChat에서 보낸 access_token을 가져온 다음 openid와 access_token을 사용하여 WeChat 서버에서 보낸 json 형식의 사용자 메시지를 가져와야 합니다. 마지막으로 josn_decode를 사용하여 사용자의 자세한 메시지를 가져옵니다. 코드를 작성하기 전에 테스트할 수 있습니다. 인터페이스 작동은 아래와 같습니다.
먼저 아래 그림과 같이 WeChat 공개 플랫폼에 들어갑니다.
개발자 도구를 클릭한 다음 온라인을 클릭합니다. 인터페이스 디버깅은 아래 그림과 같이 인터페이스 선택 인터페이스로 들어갑니다
클릭하여 아래 페이지로 들어가고 인터페이스 유형에서 사용자 관리를 선택하고 인터페이스 목록에서 사용자 계정 정보 가져오기 인터페이스/사용자를 선택합니다. /info;
그런 다음 WeChat 개발 문서를 확인하여 access_token을 얻고 appid를 사용하세요. 그리고 appsecret은 아래와 같습니다
appsecret을 활성화하려면 클릭한 후 브라우저 URL에 입력하세요.
https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=$appid&secret =$appsecret" URL, 여기서 $appid는 위 그림의 appid 문자열이고 $appsecret은 개발자입니다. 비밀번호 두 변수를 문자열로 바꾼 후(따옴표는 제거됨) Enter 키를 클릭하여 WeChat 서버에서 보낸 메시지를 가져옵니다. access_token 및 만료_in 데이터의 경우 가져온 access_token 문자열을 인터페이스 디버깅 페이지에 복사합니다. 플랫폼을 팔로우한 후 테스트 계정의 유일한 ID입니다. 획득 방법은 이전 기사를 참조하거나 Baidu에서 인터페이스 페이지의 해당 입력 상자에 매개변수를 입력할 수도 있습니다(녹색 확인). 입력이 완료된 후 표시됩니다), 문제를 감지하려면 클릭하세요.
얻은 정보는 다음과 같습니다.
이제 성공적으로 획득한 코드를 업로드해 보겠습니다. access_token 및 개인 정보
public function getaccss_token(){ $table = 'Access_token'; $useraccess_token = Db::table('Access_token')->select(); $appid = "你的appid"; $appsecret = "你的appsecret"; $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=$appid&secret=$appsecret"; //判断是不是第一次获取access_token if(!count($useraccess_token)){ $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"]; $data=['access_token'=>$access_token,'expires_time'=>($jsoninfo['expires_in']+time()-200)]; Db::table($table)->insert($data); return $access_token; }else if($useraccess_token[0]['expires_time']<time()){//判断是否过期 $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"]; $data=['access_token'=>$access_token,'expires_time'=>($jsoninfo['expires_in']+time()-200)]; Db::table($table)->where('expires_time',$useraccess_token[0]['expires_time'])->update($data);//更新数据库; return $access_token; }else{ $access_token = $useraccess_token[0]['access_token']; return $access_token; } }
curl 기능을 사용하여 WeChat에서 보낸 메시지를 가로채세요. 획득한 access_token은 2시간 동안만 유효하므로 사용자가 공식 계정의 경우 만료 여부를 확인해야 하며, 만료된 경우 다시 획득해야 합니다. 위 그림의 여러 if 판단을 사용하여 access_token과 시간을 데이터베이스에 저장합니다. 매번 테스트를 위해 꺼내서 사용할 수 있습니다. 물론 캐시에서 호출하거나 파일에 넣고 파일에서 호출할 수도 있습니다.
access_token을 얻은 후 access_token 및 openid를 사용할 수 있습니다. 아래와 같이 사용자의 개인 정보를 얻으려면:
public function userinfo($openid){ $access_token = $this->getaccss_token(); //获取用户信息地址 $urlid = 'https://api.weixin.qq.com/cgi-bin/user/info?access_token='.$access_token.'&openid='.$openid.'&lang=zh_CN'; $curl = curl_init(); // 启动一个CURL会话 curl_setopt($curl, CURLOPT_URL, $urlid); curl_setopt($curl, CURLOPT_HEADER, 0); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); // 跳过证书检查 //curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, true); // 从证书中检查SSL加密算法是否存在 $tmpInfo = curl_exec($curl); //返回api的json对象 //关闭URL请求 curl_close($curl); $userinfo = json_decode($tmpInfo,true); return $userinfo; }
curl 함수 관련 작업을 통해 정보를 가로채서 형식을 변환합니다. 마지막 userinfo는 사용자의 개인 정보 배열입니다. 위는 access_token을 통해 사용자의 개인정보를 얻는 작업입니다~!
관련 추천:
php WeChat 공개 계정 개발, 사용자 아바타 획득 및 다운로드위 내용은 사용자 WeChat 개인 정보를 얻기 위한 php WeChat 공개 계정 개발의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!