メニューをクリックしてマイクロサイト「パブリック」を開いてログインし、WeChat パブリック アカウントを実装する方法
この記事の例では、メニューをクリックしてマイクロサイトを開いてログインする WeChat パブリック アカウントを実装する方法を説明します。参考のためにみんなで共有してください。具体的な分析は次のとおりです:
一般に、メニューをクリックしてマイクロサイトを開いてログインすることで WeChat 公式アカウントを実装する手順は比較的複雑ですが、この記事はこれを要約したものであり、いくつかの参考値をもたらすと思います。みんなに。 。
現在、ほとんどのマイクロサイトはユーザーの WeChat openid を介した自動ログインを実現しています。以前の開発では、ユーザーがメニューをクリックすると、公式アカウントが画像とテキストを返しました。ユーザーがこの画像とテキストをクリックした場合にのみ、マイクロサイトに自動的にログインできました。ただし、高度なインターフェイスをお持ちの場合は、メニューをクリックして Web ページを開いて OpenID を取得し、自動ログインを実現できます。
ここで説明したように、高度なインターフェイス (サービス アカウント、エンタープライズ アカウント) の権限を持ち、開発者モードをオンにする必要があります。
1.コールバックアドレスを設定します
WeChat パブリック プラットフォームの背景の「開発者センター」で、「高度なインターフェイス」の下に「OAuth2.0 Web 認証」が表示されます。クリックすると、コールバック アドレスを入力するためのダイアログ ボックスが表示されます。ポップアップ。認証方法の詳細については、ここをクリックして学習してください。高度なインターフェース許可を取得した後にのみ、この場所の「変更」が表示されます。
ここで入力されるドメイン名は URL ではなくドメイン名であることに注意してください。説明は非常に明確です。「認可コールバック ドメイン名の構成仕様は完全なドメイン名です」。つまり、www を含むドメイン名と www を含まないドメイン名が意味します。は 2 つの異なるドメイン名です。したがって、以下に示すようにドメイン名を入力する必要があります。
2. メニューを作成します
作成メニューは、マイクロサイトのバックグラウンドを通じて作成できます。開発者モードがオンになっていない場合は、WeChat パブリック プラットフォームのバックグラウンドからも作成できます。
メニューは、クリックして開くリンク モード、つまりビュー モードを使用します。開発者モードを使用している場合は、次のコードを WeChat に送信することで、公式アカウント メニュー (開発者ドキュメント) を作成できます:
コードをコピーします コードは次のとおりです:
{
「ボタン」:[
{
"タイプ":"表示",
"name":"マイクロサイトにログイン",
"url":"https://open.weixin.qq.com/connect/oauth2/authorize?appid={WeChat パブリック プラットフォームのバックグラウンドでこの APPID を取得します}&redirect_uri={入力したコールバック ドメイン名の下のアドレス} &response_type=code&scope =snsapi_base&state=1#wechat_redirect"
}]
}
コード1は提出するメニューコードで、以下で使用します
APPID を取得する場所は、上記でコールバック アドレスを入力した「開発者センター」です。次に、PHP を使用してメニュー送信を実装します。
コードをコピーします コードは次のとおりです:
関数curl_info($appid,$secret) {
$ch =curl_init();
curl_setopt($ch, CURLOPT_URL, "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".$appid."&secret=".$secret);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (互換性; MSIE 5.01; Windows NT 5.0)');
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_AUTOREFERER, 1);
//curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$tmpInfo =curl_exec($ch);
if (curl_errno($ch)) {
echo 'Errno'.curl_error($ch);
}
カール_クローズ($ch);
$arr= json_decode($tmpInfo,true);
$arr を返します;
}
関数curl_menu($ACCESS_TOKEN,$data) {
$ch =curl_init();
curl_setopt($ch, CURLOPT_URL, "https://api.weixin.qq.com/cgi-bin/menu/create?access_token=".$ACCESS_TOKEN);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (互換性; MSIE 5.01; Windows NT 5.0)');
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_AUTOREFERER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$tmpInfo =curl_exec($ch);
if (curl_errno($ch)) {
echo 'Errno'.curl_error($ch);
}
カール_クローズ($ch);
$arr= json_decode($tmpInfo,true);
$arr を返します;
}
関数 creat_menu() {
$ACCESS_LIST=curl_info(APP_ID,APP_SCR);//取得された凭证、APP_IDとAPP_SCR(应用密钥)を自分で定義する必要があります、これも微信公众平台後台开出版社中心找
if($ACCESS_LIST['access_token']!='') {
$access_token = $ACCESS_LIST['access_token'];//ACCESS_TOKEN
にアクセス
$data = 'ハンドル上面代码1贝黏贴在这里';
$msg =curl_menu($access_token,preg_replace("#u([0-9a-f]+)#ie", "iconv('UCS-2', 'UTF-8', Pack('H4', '1) '))", $data));
if($msg['errmsg']=='ok') {
die('创建自定菜单成功!');
}
他に{
die('创建自定菜单失败!');
}
}
他に{
die('创建失败,微信AppIdまたは微信AppSecret充填写错误');
}
}
create_menu();
?>
コード 2 PHP を使用して WeChat パブリック アカウント メニューを作成します
コード 2 は実際には少し冗長であり、コア部分は赤で強調表示されています。このようにして、すぐに WeChat 公式アカウントに「マイクロサイトへのログイン」メニューが作成されるはずです。このメニューをクリックしてマイクロサイトにログインします。
PHP が必要ない場合は、WeChat パブリック プラットフォームのバックグラウンドでメニューのカスタマイズに直接リンクを記述するだけです。
上の画像のこの場所で、リンクを開くことを選択してメニューを作成します。 OK、上にリンクを貼ってください:
https://open.weixin.qq.com/connect/oauth2/authorize?appid={WeChat パブリック プラットフォームのバックグラウンドでこの APPID を取得します}&redirect_uri={入力したコールバック ドメイン名の下のアドレス}&response_type=code&scope= snsapi_base&state=1 #wechat_redirect
メニューを作成するだけです。
もちろん、このリンクを自分の WeChat 管理背景に追加するだけでよい場合もあります。
3. コールバック ページで openid を取得します
注意していれば、上記のリンク アドレスには、scope=snsapi_userinfo ではなく、scope=snsapi_base パラメータが含まれていることに気づいたかもしれません。これは、前者を使用すると、ユーザーが認証ボタンをクリックしてコールバック ページに直接ジャンプする必要がないためです。後者は認証ボタンをクリックする必要がありますが、認証ボタンをクリックすると、まず、公式アカウントをフォローしなくても認証できるという利点があります。次に、認証後にニックネーム、性別などの情報を取得できます。そして場所。ただし、ログインに openid を使用しているため、前者を選択してください。
メニューをクリックした後、WeChat が処理を承認した後、送信したコールバック アドレスにジャンプします (WeChat はジャンプするため、コールバック アドレスは xxx/?callback=from_weixin などのパラメーターを取らないことが最善であることに注意してください)コールバック アドレスにパラメータを渡す必要もあります。このパラメータが必要です)。 WeChat は次の URL にジャンプします:
コールバックアドレス/?code=CODE&state=1
上記のコードは、$_GET['code'] を通じて CODE 値を取得でき、この CODE 値と appid、openid、access_token を取得できます。
次に、PHP を使用して以下を実装します。
コードをコピーします コードは次のとおりです:
if($_GET['code']) {
$code = $_GET['code'];
$data = get_by_curl('https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=APPSRC&code='.$code.'&grant_type=authorization_code');
$data = json_decode($data);
$openid = $data->openid;
$access_token = $data->access_token;
}
function get_by_curl($url,$post = false){
$ch =curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
If($post){
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,$post);
}
$result =curl_exec($ch);
curl_close($ch);
$result を返します;
}
このようにして、openid と access_token を取得できます。これらの値を使用して、WeChat パブリック プラットフォームの API インターフェイスを使用して基本的なユーザー情報を取得することもできます。
この記事が、PHP に基づいて WeChat パブリック アカウントを開発するすべての人に役立つことを願っています。
http://www.bkjia.com/PHPjc/911901.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/911901.html技術記事メニューをクリックしてマイクロ サイトを開いてログインする WeChat パブリック アカウントの実装方法 この記事の公開例では、メニューをクリックしてマイクロ サイトを開いてログインする WeChat パブリック アカウントの実装方法について説明します。みんなとシェアしましょう...