ホームページ  >  記事  >  バックエンド開発  >  PHP WeChat Webページに基づいてユーザー情報を取得する分析例

PHP WeChat Webページに基づいてユーザー情報を取得する分析例

coldplay.xixi
coldplay.xixi転載
2020-08-05 17:18:052244ブラウズ

PHP WeChat Webページに基づいてユーザー情報を取得する分析例

多くのユーザーが WeChat Web ページを開発する場合、国、省、都市、ニックネームなどのユーザーの基本情報を取得する必要があります。次に、次の情報に基づいて詳細に分析します。 PHP 言語の基礎を取得する方法。

関連ビデオの推奨事項: PHP プログラミングの入門から習熟まで

必要な条件:

1) パブリック アカウント認証

2) 基本的なユーザー情報を取得するための Web ページ認証インターフェイスがあります

注: 最近、友人が次のように言いました: テスト アカウントはパブリック プラットフォームで申請されましたユーザー情報にアクセスできないようです。公認アカウントに切り替えれば正常になります!

この問題が発生した場合は、認定パブリック アカウントでテストしてみてください。ご協力ありがとうございました!

認可コールバック ページのドメイン名を入力します

パブリック プラットフォームにログインします-->デベロッパー センター-->インターフェース権限テーブル

Web ページを見つけて認証し、基本的なユーザー情報を取得して変更します --> ドメイン名を次のように入力します。

保存します。 !

Web ページについて 2 つの認可スコープの違いの説明 (公式)

1. Web ページの認可は、取得に使用されるスコープとして snsapi_base で開始されます。ページに入ったユーザーの openid で、サイレントに認証されて自動的にジャンプされ、コールバック ページに移動します。ユーザーが認識するのは、コールバック ページ (多くの場合ビジネス ページ)

2 に直接入ったことです。スコープとして snsapi_userinfo で開始された Web ページの承認は、ユーザーの基本情報を取得するために使用されます。ただし、この種の認可はユーザーが手動で同意する必要があり、ユーザーは同意しているため特に注意する必要はなく、認可後にユーザーの基本情報を取得できます。

3. ユーザー管理インターフェースの「ユーザー基本情報取得インターフェース」は、ユーザーが公式アカウントと対話した後、またはイベントがプッシュされた後にのみ、ユーザーの OpenID に基づいてユーザーの基本情報を取得できます。ユーザーが公式アカウントと対話した後。他の WeChat インターフェイスを含むこのインターフェイスでは、正常に呼び出す前にユーザー (つまり、openid) が公式アカウントをフォローする必要があります。

#スコープには 2 つのモードがあるため、以下で別々に説明します。


#スコープは snsapi_base であるため、ユーザーは情報を取得するには公式アカウントをフォローする必要があります


まず自分で 2 つのファイルを作成します:index.php と getUserInfo.php


コード例


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

scope is 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 を含む QR コードを生成します: http://ドメイン名/index.php!


3) WeChat でスキャンします


再度テストします: スコープは snsapi_userinfo

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

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

3 ) 次に、WeChat を使用して、生成した QR コードをスキャンします。

# 関連学習の推奨事項:

php プログラミング

(ビデオ)

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

声明:
この記事はjb51.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。