>  기사  >  위챗 애플릿  >  C# WeChat 공개 계정 개발 - 사용자 기본 정보를 얻기 위한 웹 페이지 인증(oauth2.0) 2

C# WeChat 공개 계정 개발 - 사용자 기본 정보를 얻기 위한 웹 페이지 인증(oauth2.0) 2

黄舟
黄舟원래의
2017-01-16 11:06:092017검색

머리말

이번 글은 snsapi_userinfo를 구현한 글입니다. 사실 이 글을 쓸 당시에는 디버깅을 제대로 하지 못해 혼란스러웠지만, 프로그램과 아이디어를 반복해서 확인해 보았는데 문제는 없었습니다. 공식 계정, 그룹의 한 남자가 디버깅하기 전에 테스트 공식 계정을 사용했는데 나와 같은 문제가 발생하여 방금 공식 공식 계정으로 변경했다고 말했습니다. 그리고 snsapi_userinfo 메소드는 snsapi_base보다 간단하고 이해하기 쉽습니다.

먼저 문제를 설명드리겠습니다. snsapi_userinfo 방식은 공개 계정을 팔로우할 필요가 없어서 페이지 주소를 클릭해서 점프했는데 테스트 공개 계정을 팔로우하지 않았다는 메시지가 뜹니다.

구현 아이디어

기본 사용자 정보를 얻기 위한 웹 페이지 인증에 대한 이전 기사를 토대로 snsapi_userinfo를 구현하는 것이 모든 인터페이스를 조정하는 것이 더 빠릅니다. 방법.

1. 먼저 코드를 받으세요

2. 코드를 기반으로 웹페이지 인증 access_token과 openid를 가져옵니다. 여기서 WeChat은 하루에 12번만 access_token을 호출할 수 있도록 제한되어 있으므로 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(); 
}

요약

웹 인증 인터페이스에서 사용자 정보를 얻기 위한 인터페이스는 다음과 같습니다: 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/net-xiejun/p/4632711.html cnblogs.com/txw1958/p/weixin76-user-info.html

위는 사용자 기본정보를 얻기 위한 C# 위챗 공용계정 개발-웹페이지 인증(oauth2.0) 내용입니다 2. 자세한 내용은 관련 내용은 PHP 중국어 홈페이지(www.php.cn)를 팔로우해주세요!


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.