ホームページ >バックエンド開発 >PHPチュートリアル >PHP WeChat Web ページでユーザー情報を取得する方法

PHP WeChat Web ページでユーザー情報を取得する方法

php中世界最好的语言
php中世界最好的语言オリジナル
2017-12-20 16:43:401800ブラウズ

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);

getUserInfo.php は次のとおりです:

 $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);}

スコープは snsapi_userinfo ユーザーは情報を取得するために公式アカウントをフォローする必要はありませんが、公式アカウントをフォローする必要はありません。ユーザーがクリックして確認するためのインターフェイスです。ログイン認証に相当します!

コード例

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);

getUserInfo.phpは次のとおりです:

 $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);}

テスト手順:

2つのファイルindex.phpとgetUserInfo.phpを作成した後、最初にテストします: スコープは snsapi_base です

1) まずは公開アカウントをフォローしてください

2) URL: http://ドメイン名/index.php で QR コードを生成します

3) WeChat でスキャンしてください

そしてテスト:scope is snsapi_userinfo

1) コードを置き換えます

2) 現在の公開アカウントのフォローを解除します

3) 次に、WeChat で生成したばかりの QR コードをスキャンします


見ました。これらの場合の方法をマスターしました。さらに興味深い情報については、PHP 中国語 Web サイトの他の関連記事に注目してください。

関連書籍:


大規模な Web サイトのトラフィックと高い同時実行性の問題を PHP がどのように解決するか

AJAX の共通構文とは何ですか

AJAX の原則と CORS クロスドメインメソッド

以上がPHP WeChat Web ページでユーザー情報を取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。