ホームページ ウェブフロントエンド jsチュートリアル WeChatアプレットでユーザー情報を取得する方法の例

WeChatアプレットでユーザー情報を取得する方法の例

May 12, 2018 pm 05:04 PM
情報 アプレット

この記事では主に WeChat アプレットがユーザー情報を取得する方法について詳しく紹介します。興味のある方は参考にしていただければ幸いです。

たとえば、ブラウザでは document.getElementById を通じてページの DOM オブジェクトを取得できます。ただし、WeChat アプレットでは DOM オブジェクトを取得できません。 document.getElementById() は直接エラー getElementById not function を報告します。私も酔っています。これがサポートされていないと、多くの興味深い機能を実装できません。
本題に戻り、ユーザー情報の取得について私の考えを話させてください。

ユーザー情報を取得するには 2 つのオプションがあります。
1. 機密情報 openId を含まない json オブジェクト (ニックネーム、avatarUrl などの基本情報を含む)
2. 機密情報 openId などの基本情報が含まれます。

最初の取得ソリューション

1. まず、wx.login() インターフェースを呼び出して、ユーザー認証検証を許可します。これは、xxxxx を認証するかどうかを肉眼で観察するものです。
2. ユーザーが正常に認証されたら、wx.getUserInfo() インターフェースを呼び出してユーザー情報を取得します。

完全なコードは次のとおりです

wx.login({
 success:function(){
 wx.getUserInfo({
  success:function(res){
  var simpleUser = res.userInfo;
  console.log(simpleUser.nickName);
  }
 });
 }
});
ログイン後にコピー

2番目のコードはより複雑で、userInfoを取得するためにバックグラウンドとの対話が必要ですが、このソリューションによって取得されるデータは完全です(openIdを含む)。

1. wx.login() インターフェースを呼び出して、成功関数のパラメーターにコードを含めます。
2. encryptedData と iv を含む wx.getUserInfo() インターフェイスの成功関数を呼び出します
3. 上記のパラメーターをバックグラウンド分析に渡して userInfo を生成します

コードは次のとおりです
js

var request = require("../../utils/request.js");

wx.login({
 success:function(res_login){
  if(res_login.code)
  {
  wx.getUserInfo({
   withCredentials:true,
   success:function(res_user){
   var requestUrl = "/getUserApi/xxx.php";
   var jsonData = {
    code:res_login.code,
    encryptedData:res_user.encryptedData,
    iv:res_user.iv
    };
   request.httpsPostRequest(requestUrl,jsonData,function(res){
   console.log(res.openId);
   });
   }
  })
  }
 }
 })
ログイン後にコピー

バックエンド分析

/**
 * 获取粉丝信息
 * 其中的参数就是前端传递过来的
 */
public function wxUserInfo($code,$encryptedData,$iv)
{
 $apiUrl = "https://api.weixin.qq.com/sns/jscode2session?appid={$this->wxConfig['appid']}&secret={$this->wxConfig['appsecret']}&js_code={$code}&grant_type=authorization_code";

 $apiData = json_decode(curlHttp($apiUrl,true),true);

 if(!isset($apiData['session_key']))
 {
 echoJson(array(
  "code" => 102,
  "msg" => "curl error"
 ),true);
 }

 $userInfo = getUserInfo($this->wxConfig['appid'],$apiData['session_key'],$encryptedData,$iv);

 if(!$userInfo)
 {
 echoJson(array(
  "code" => 105,
  "msg" => "userInfo not"
 ));
 }

 //$userInfo = json_decode($userInfo,true);

 //载入用户服务
 //$userService = load_service("User");

 //$userService->checkUser($this->projectId,$userInfo);

 echo $userInfo; //微信响应的就是一个json数据
}
ログイン後にコピー

getUserInfo関数、wxBizDataCrypt.phpはWeChatが公式に提供するマテリアルパッケージです

curlHttp関数は、私の記事を確認してくださいcurlHttp

//获取粉丝信息
function getUserInfo($appid,$sessionKey,$encryptedData,$iv){
 require_once ROOTPATH . "/extends/wxUser/wxBizDataCrypt.php";
 $data = array();
 $pc = new WXBizDataCrypt($appid, $sessionKey);
 $errCode = $pc->decryptData($encryptedData, $iv, $data );

 if ($errCode == 0) {
 return $data;
 } else {
 return false;
 }
}
ログイン後にコピー

自分で書いた小さなツールです request.js

var app = getApp();

//远程请求
var __httpsRequest = {

 //http 请求
 https_request : function(obj){
 wx.request(obj);
 },

 //文件上传
 upload_request : function(dataSource){
 wx.uploadFile(dataSource);
 }
};

module.exports = {
 //执行异步请求get
 httpsRequest:function(obj){
 var jsonUrl = {};
 jsonUrl.url = obj.url;
 if(obj.header)jsonUrl.header=obj.header;
 if(obj.type)
  jsonUrl.method = obj.type;
 else
  jsonUrl.method="GET";
 if(obj.data)jsonUrl.data = obj.data;
 obj.dataType?(jsonUrl.dataType=obj.dataType):(jsonUrl.dataType="json");

 jsonUrl.success = obj.success;

 jsonUrl.data.projectId = app.globalData.projectId;

 __httpsRequest.https_request(jsonUrl);
 },

 //get 请求
 httpsGetRequest:function(req_url,req_obj,res_func)
 {
 var jsonUrl = {
  url:app.globalData.host + req_url,
  header:{"Content-Type":"application/json"},
  dataType:"json",
  method:"get",
  success:function(res)
  {
  typeof res_func == "function" && res_func(res.data);
  }
 }

 if(req_obj)
 {
  jsonUrl.data = req_obj;
 }

 jsonUrl.data.projectId = app.globalData.projectId;

  __httpRequest.https_request(jsonUrl);
 },

 //post 请求
 httpsPostRequest:function(req_url,req_obj,res_func)
 {
 var jsonUrl = {
  url:app.globalData.host + req_url,
  header:{"Content-Type":"application/x-www-form-urlencoded"},
  dataType:"json",
  method:"post",
  success:function(res)
  {
  typeof res_func == "function" && res_func(res.data);
  }
 }

 if(req_obj)
 {
  jsonUrl.data = req_obj;
 }

 jsonUrl.data.projectId = app.globalData.projectId;

  __httpsRequest.https_request(jsonUrl);
 },

 //文件上传
 httpsUpload:function(uid,fileDataSource,res_func)
 {
 dataSource = {
  url:app.globalData.host + req_url,
  header:{
  "Content-Type":"multipart/form-data"
  },
  dataType:"json",
  formData : {
  "uid" : uid
  },
  filePath : fileDataSource,
  name : "fileObj",
  success:function(res){
  typeof res_func == "function" && res_func(res);
  }
 }

 __httpsRequest.upload_request(dataSource);
 }
};
ログイン後にコピー

app.globalData.host はドメイン名アドレスです https://xxxxx.com;

などWeChatアプレットを実装してユーザー情報インターフェースを取得

ユーザー情報のおすすめ記事10件の取得について

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

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

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

WeChat ミニ プログラムにカードめくり効果を実装する WeChat ミニ プログラムにカードめくり効果を実装する Nov 21, 2023 am 10:55 AM

WeChat ミニ プログラムでのカードめくり効果の実装 WeChat ミニ プログラムでは、カードめくり効果の実装は、ユーザー エクスペリエンスとインターフェイス インタラクションの魅力を向上させることができる一般的なアニメーション効果です。以下では、WeChat アプレットでカードめくりの特殊効果を実装する方法と、関連するコード例を詳しく紹介します。まず、ミニ プログラムのページ レイアウト ファイルに 2 つのカード要素を定義する必要があります。1 つは前面のコンテンツを表示するため、もう 1 つは背面のコンテンツを表示するためです。具体的なサンプル コードは次のとおりです: <!--index.wxml- ->&l

Windows 11 で GPU を取得し、グラフィックス カードの詳細を確認する方法 Windows 11 で GPU を取得し、グラフィックス カードの詳細を確認する方法 Nov 07, 2023 am 11:21 AM

システム情報の使用 [スタート] をクリックし、システム情報を入力します。下の画像に示すようにプログラムをクリックするだけです。ここではほとんどのシステム情報が見つかりますが、グラフィック カード情報も見つかります。システム情報プログラムで、「コンポーネント」を展開し、「表示」をクリックします。プログラムに必要な情報をすべて収集させ、準備が完了すると、システム上でグラフィックス カード固有の名前やその他の情報を見つけることができます。複数のグラフィックス カードをお持ちの場合でも、コンピュータに接続されている専用および統合グラフィックス カードに関連するほとんどのコンテンツをここから見つけることができます。デバイス マネージャーの使用 Windows 11 他のほとんどのバージョンの Windows と同様に、デバイス マネージャーからコンピューター上のグラフィック カードを見つけることもできます。 「開始」をクリックしてから、

アリペイ、希少文字ライブラリを収集・補完する「漢字拾い-希少文字」ミニプログラムを開始 アリペイ、希少文字ライブラリを収集・補完する「漢字拾い-希少文字」ミニプログラムを開始 Oct 31, 2023 pm 09:25 PM

10月31日の当サイトのニュースによると、今年5月27日、アント・グループは「漢字拾いプロジェクト」の立ち上げを発表し、最近新たな進展を迎えた:アリペイが「漢字拾い-珍しい文字」ミニプログラムを開始協会からコレクションを収集する レア文字は、レア文字ライブラリを補完し、アリペイでのレア文字入力方法の改善に役立つように、レア文字に異なる入力エクスペリエンスを提供します。現在、ユーザーは「漢字ピックアップ」「珍文字」などのキーワードで検索することで「珍文字」アプレットに入ることができる。ミニプログラムでは、ユーザーがシステムで認識・入力されなかった珍しい文字の画像を送信し、確認後、Alipay のエンジニアがフォントライブラリに追加エントリを作成します。当サイトでは、発音が不明瞭な珍しい単語を対象とした最新の単語分割入力方法をミニプログラムで体験できることに注目しました。ユーザー解体

NameDrop で連絡先の詳細を共有する方法: iOS 17 のハウツー ガイド NameDrop で連絡先の詳細を共有する方法: iOS 17 のハウツー ガイド Sep 16, 2023 pm 06:09 PM

iOS 17には、2台のiPhoneをタッチすることで誰かと連絡先情報を交換できる新しいAirDrop機能があります。これは NameDrop と呼ばれるもので、その仕組みは次のとおりです。 NameDrop を使用すると、新しい相手の電話番号を入力して電話したりテキストメッセージを送信したりする代わりに、iPhone を相手の iPhone の近くに置くだけで連絡先の詳細を交換できるため、相手はあなたの番号を知ることができます。 2 つのデバイスを組み合わせると、連絡先共有インターフェイスが自動的にポップアップ表示されます。ポップアップをクリックすると、個人の連絡先情報と連絡先ポスターが表示されます(自分の写真をカスタマイズして編集できます。これも iOS17 の新機能です)。この画面には、「受信のみ」するか、応答として自分の連絡先情報を共有するかのオプションも含まれています。

uniapp がミニ プログラムと H5 の間で迅速な変換を実現する方法 uniapp がミニ プログラムと H5 の間で迅速な変換を実現する方法 Oct 20, 2023 pm 02:12 PM

uniapp がミニ プログラムと H5 の間で迅速な変換を実現するには、具体的なコード例が必要ですが、近年、モバイル インターネットの発展とスマートフォンの普及に伴い、ミニ プログラムと H5 は不可欠なアプリケーション形式となっています。クロスプラットフォーム開発フレームワークとして、uniapp は一連のコードに基づいて小規模プログラムと H5 間の変換を迅速に実現し、開発効率を大幅に向上させます。この記事では、uniapp がミニ プログラムと H5 の間で迅速な変換を実現する方法と、具体的なコード例を紹介します。 1. uniapp uniaの紹介

iPhone での NameDrop の仕組み (および無効にする方法) iPhone での NameDrop の仕組み (および無効にする方法) Nov 30, 2023 am 11:53 AM

iOS17では、2台のiPhoneを同時にタッチすることで連絡先を交換できるAirDrop機能が新たに搭載されました。これは NameDrop と呼ばれるもので、実際にどのように機能するかは次のとおりです。 NameDrop を使用すると、新しい相手に電話をかけたりテキストメッセージを送信したりする際に相手の番号を入力する必要がなく、相手があなたの番号を知ることができるので、iPhone を相手の iPhone に近づけるだけで連絡先情報を交換できます。 2 つのデバイスを組み合わせると、連絡先共有インターフェイスが自動的にポップアップ表示されます。ポップアップをクリックすると、個人の連絡先情報と連絡先ポスター (カスタマイズおよび編集できる自分の写真、これも iOS 17 の新機能) が表示されます。この画面には、「受信のみ」または応答として自分の連絡先情報を共有することも含まれます

WeChat でメッセージの受信が遅れる理由は何ですか? WeChat でメッセージの受信が遅れる理由は何ですか? Sep 19, 2023 pm 03:02 PM

WeChat の情報受信が遅れる理由には、ネットワークの問題、サーバーの負荷、バージョンの問題、デバイスの問題、メッセージ送信の問題、またはその他の要因が考えられます。詳細な紹介: 1. ネットワークの問題。WeChat での情報受信の遅延は、ネットワーク接続に関連している可能性があります。ネットワーク接続が不安定または信号が弱い場合、情報送信に遅延が発生する可能性があります。携帯電話が正常に動作していることを確認してください。安定したネットワークに接続されており、ネットワーク信号強度が良好であること; 2. サーバー負荷 WeChat サーバーの負荷が高い場合、特に繁忙期や多数のユーザーが WeChat を使用している場合、情報送信に遅延が発生する可能性があります。同じ時間など。

Golang でのポインター変換のベスト プラクティスの例を学ぶ Golang でのポインター変換のベスト プラクティスの例を学ぶ Feb 24, 2024 pm 03:51 PM

Golang は、さまざまなアプリケーションやサービスの開発に使用できる強力で効率的なプログラミング言語です。 Golang では、ポインタは非常に重要な概念であり、データをより柔軟かつ効率的に操作するのに役立ちます。ポインタ変換とは、異なる型間のポインタ操作のプロセスを指します。この記事では、具体的な例を使用して、Golang におけるポインタ変換のベスト プラクティスを学びます。 1. 基本概念 Golang では、各変数にはアドレスがあり、アドレスはメモリ内の変数の位置です。

See all articles