はじめに
この記事では、実際にデバッグがうまくできずに疑念を抱きましたが、テスト用の公開アカウントを使用したため、プログラムやアイデアを何度も確認した結果、問題はありませんでした。ある人は、以前デバッグするときにテスト用の公式アカウントを使用していて、私と同じ問題に遭遇したとのことですが、その後、公式の公式アカウントに変更したところ、うまくいきました。 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) に注目してください。