この記事では主に、PHP を使用して WeChat Web ページを作成し、基本的なユーザー情報を取得するプロセスの詳細な分析と、ステップバイステップの説明を提供します。
WeChat Web ページを開発する場合、多くのユーザーは、国、省、都市、ニックネームなどのユーザーの基本情報を取得する必要があります。次に、PHP 言語の基本に基づいて、情報を正常に取得する方法を詳細に分析します。
必要な条件:
1) パブリックアカウント認証
2) 基本的なユーザー情報を取得するためのWebページ認証インターフェースがあります
注: 最近、友人がこう言いました: テストアカウントはパブリックプラットフォームで申請されましたユーザー情報は利用できないように見えます。公認アカウントに切り替えれば正常になります!
この問題が発生した場合は、認証されたパブリック アカウントでテストしてみてください。 ご協力ありがとうございました!
認可コールバック ページのドメイン名を入力します
パブリック プラットフォームにログインします-->デベロッパー センター-->インターフェース権限テーブル
Web ページの認可を見つけて、基本的なユーザー情報を取得し、変更します->次のようにドメイン名を入力します:
Web ページの認証の 2 つのスコープの違いについての説明 (公式)
1.ページ openid を入力するユーザーを取得するためにスコープが使用されるため、snsapi_base で開始され、サイレントに承認され、自動的にコールバック ページにジャンプします。ユーザーが認識するのは、コールバック ページ (多くの場合ビジネス ページ) に直接入ることです
2. スコープとして snsapi_userinfo で開始される Web ページの承認は、ユーザーの基本情報を取得するために使用されます。ただし、この種の認可はユーザーが手動で同意する必要があり、ユーザーは同意しているため特に注意する必要はなく、認可後にユーザーの基本情報を取得できます。
3. ユーザー管理インターフェースの「ユーザー基本情報取得インターフェース」は、ユーザーが公式アカウントと対話するか、以下のイベントをプッシュした後にのみ、ユーザーのOpenIDに基づいてユーザーの基本情報を取得できます。他の WeChat インターフェイスを含むこのインターフェイスでは、正常に呼び出す前にユーザー (つまり、openid) が公式アカウントをフォローする必要があります。
スコープには2つのモードがあるため、以下で別々に説明します:
スコープはsnsapi_baseであり、ユーザーは情報を取得するには公式アカウントをフォローする必要があります
まず、index.phpとgetUserInfo.phpの2つのファイルを作成します
コード例
index.phpは次のとおりです:
//scope=snsapi_base 实例 $appid='你的AppId'; $redirect_uri = urlencode ( 'http://你的域名/getUserInfo.php' ); $url ="https://open.weixin.qq.com/connect/oauth2/authorize?appid=$appid&redirect_uri=$redirect_uri&response_type=code&scope=snsapi_base&state=1#wechat_redirect"; header("Location:".$url);
$appid = "你的AppId"; $secret = "你的AppSecret"; $code = $_GET["code"]; //第一步:取全局access_token $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=$appid&secret=$secret"; $token = getJson($url); //第二步:取得openid $oauth2Url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=$appid&secret=$secret&code=$code&grant_type=authorization_code"; $oauth2 = getJson($oauth2Url); //第三步:根据全局access_token和openid查询用户信息 $access_token = $token["access_token"]; $openid = $oauth2['openid']; $get_user_info_url = "https://api.weixin.qq.com/cgi-bin/user/info?access_token=$access_token&openid=$openid&lang=zh_CN"; $userinfo = getJson($get_user_info_url); //打印用户信息 print_r($userinfo); function getJson($url){ $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); return json_decode($output, true); }
コード例
index.phpは次のとおりです:
//scope=snsapi_userinfo实例 $appid='你的AppId'; $redirect_uri = urlencode ( 'http://你的域名/getUserInfo.php' ); $url ="https://open.weixin.qq.com/connect/oauth2/authorize?appid=$appid&redirect_uri=$redirect_uri&response_type=code&scope=snsapi_userinfo&state=1#wechat_redirect"; header("Location:".$url);
$appid = "你的AppId"; $secret = "你的AppSecret"; $code = $_GET["code"]; //第一步:取得openid $oauth2Url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=$appid&secret=$secret&code=$code&grant_type=authorization_code"; $oauth2 = getJson($oauth2Url); //第二步:根据全局access_token和openid查询用户信息 $access_token = $oauth2["access_token"]; $openid = $oauth2['openid']; $get_user_info_url = "https://api.weixin.qq.com/cgi-bin/user/info?access_token=$access_token&openid=$openid&lang=zh_CN"; $userinfo = getJson($get_user_info_url); //打印用户信息 print_r($userinfo); function getJson($url){ $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); return json_decode($output, true); }
index.phpを作成して取得しますユーザー情報.php 2 つのファイルの後
最初にテストします: スコープは snsapi_base です
1) まず公開アカウントをフォローします
2) URL を含む QR コードを生成します: http://ドメイン名/index.php! 3) WeChat スキャン
を使用して再度テストします。スコープは snsapi_userinfo です
1) コードを置き換えます
2) 現在の公式アカウントのフォローを解除します
3) 次に、WeChat を使用して生成した QR コードをスキャンします。
関連する推奨事項:
以上がPHP WeChat Webページに基づいてユーザー情報を取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。