C# WeChat パブリック アカウントの開発 - ユーザーの基本情報を取得するための Web ページの承認 (oauth2.0) 2

黄舟
リリース: 2017-01-16 11:06:09
オリジナル
2085 人が閲覧しました

はじめに

この記事では、実際にデバッグがうまくできずに疑念を抱きましたが、テスト用の公開アカウントを使用したため、プログラムやアイデアを何度も確認した結果、問題はありませんでした。ある人は、以前デバッグするときにテスト用の公式アカウントを使用していて、私と同じ問題に遭遇したとのことですが、その後、公式の公式アカウントに変更したところ、うまくいきました。 WeChat の開発ドキュメントを繰り返し確認しましたが、snsapi_userinfo メソッドは snsapi_base よりも単純で理解しやすいです。

まず問題について説明します。 snsapi_userinfo のメソッドでは公式アカウントをフォローする必要がないため、ページのアドレスをクリックしてジャンプすると、テスト公式アカウントをフォローしていないことを示すメッセージが表示されました。

実装のアイデア

基本的なユーザー情報を取得するための Web ページの認証に関する前回の記事の基礎を踏まえて、インターフェースを全面的に調整して snsapi_userinfo を実装する方が速くなります。

1. 最初にコードを取得します

2. コードに基づいて Web ページの認証 access_token と openid を取得します。 ここの WeChat は、access_token の呼び出しが 1 日 12 回までに制限されているため、access_token を取得した後にキャッシュされます。

3. access_token と openid に基づいてユーザー情報を取得します。

コードを見てください

 public ActionResult OAuthSnsApiUserInfo()  
 {        
 string code = Request.QueryString["code"];        
 try        
 {             
 if (!string.IsNullOrEmpty(code))             
 {                 
 OAuthToken oauthToken = HttpUtility.Get<OAuthToken>
 (string.Format("https://api.weixin.qq.com/sns/oauth2/access_token?appid={0}&secret={1}&code={2}&grant_type=authorization_code", appID, appsecret, code));
if (oauthToken != null && !string.IsNullOrEmpty(oauthToken.openid) && !string.IsNullOrEmpty(oauthToken.access_token))                    
{                        
OAuthUserInfo userInfo = Get
<OAuthUserInfo>(string.Format("https://api.weixin.qq.com/sns/userinfo?access_token={0}&openid={1}&lang=zh_CN", oauthToken.access_token, oauthToken.openid));
if (userInfo != null)                        
{                            
ViewData["headImage"] = userInfo.headimgurl;                            
ViewData["openid"] = userInfo.openid;                            
ViewData["nickName"] = userInfo.nickname;                            
if (userInfo.sex == 0)                            
{                                
ViewData["sex"] = "未知";                            
}                            
else if (userInfo.sex == 1)                            
{                                
ViewData["sex"] = "男";                            
}                            
else                            
{                                
ViewData["sex"] = "女";                            
}                            
ViewData["province"] = userInfo.province;                            
ViewData["city"] = userInfo.city;                        
}                        
else                        
{                        
}                    
}                    
else                    
{                           
}                
}                
else                
{                    
return Redirect(string.Format("https://open.weixin.qq.com/connect/oauth2/authorize?appid={0}&redirect_uri={1}&response_type=code&scope=snsapi_userinfo&state=123456
#wechat_redirect", appID,Server.UrlEncode("http://" + Request.Url.Host + Url.Action("OAuthSnsApiUserInfo"))));             
}        
}       
catch (Exception ex)      
{            
ViewData["errmsg"] = ex.Message;      
}                  
return View(); 
}
ログイン後にコピー

概要

Web 認証 2 でユーザー情報を取得するためのインターフェイスは、https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN です。

リファレンス

http://www.cnblogs.com/net-xiejun/p/4632711.html

http://www.cnblogs.com/txw1958/p/weixin76-user-info.html

上記は、ユーザーの基本情報を取得するための C# WeChat パブリック アカウント開発 - Web ページ認証 (oauth2.0) 2 の内容です。その他の関連コンテンツについては、PHP 中国語 Web サイト (www.php.cn) に注目してください。


ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート