用于登陆的NET类库封装

上传人:无*** 文档编号:141496830 上传时间:2022-08-24 格式:DOCX 页数:6 大小:376.72KB
返回 下载 相关 举报
用于登陆的NET类库封装_第1页
第1页 / 共6页
用于登陆的NET类库封装_第2页
第2页 / 共6页
用于登陆的NET类库封装_第3页
第3页 / 共6页
点击查看更多>>
资源描述
用于新浪微博,腾讯QQ,淘宝 OAUTH2.0 登陆的NET类库封装目前开放OAuth2互联接口比较常用的有新浪微博,腾讯QQ,淘宝,其实还有微信,只是微信的我木有申请下来,因为手续麻烦,貌似需要扫描它的协议签字然后发过去,所以就放弃封装微信OAuth2登陆接口了,待以后给补上!关于淘宝OAuth网站接入登陆目前淘宝是暂停审核了貌似,也许是因为财大气粗比较任性吧,不过你还是可申请账号的,可以做应用提交给淘宝。需要源代码的小伙伴请猛戳这里下载,需要已经编译好Dll的小伙伴请猛戳这里下载。一。 下面给出各个OAuth2.0申请合作的地址:- sinaweibo OAuth2.0 -申请接入OAuth2合作地址: (微博.开放平台)授权Url: - qq OAuth2.0 -申请接入OAuth2合作地址: (所谓的QQ互联,貌似还有一个,但这个我还木有用过,就先用QQ互联吧反正是可以登陆)授权Url: - taobao OAuth2.0 -申请接入OAuth2合作地址:授权Url: - WeiXin OAuth2.0 -申请接入OAuth2合作地址:下面开始给dotNET平台的小伙伴们发福利啦,封装了一个类实现了接入到新浪微博,腾讯QQ,淘宝,和获取用户信息,就实现了下面的2个接口,分别是IOAuthClient和IUserInterface。1. namespaceGeRenXing.OpenPlatform2. 3. publicinterfaceIOAuthClient4. 5. AuthOptionOptionget;6. AuthTokenTokenget;7. IUserInterfaceUserget;8. 9. StringGetAuthorizeUrl(ResponseTyperesponseType);10. AuthTokenGetAccessTokenByAuthorizationCode(stringcode);11. AuthTokenGetAccessTokenByPassword(stringpassport,stringpassword);12. AuthTokenGetAccessTokenByRefreshToken(stringrefreshToken);13. StringGet(Stringurl,paramsRequestOptionoptions);14. StringPost(Stringurl,paramsRequestOptionoptions);15. 16. 需要封装更多api的请自行扩展,也可以直接调用IOAuthClient的Get和Post方法直接传递参数快速访问api。新浪微博和淘宝在获取Token的时候就把OpenId直接返回给你了,而腾讯QQ的OAuth2.0接入里获取Token是不会返回OpenId的,需要单独访问 ParseAccessToken 方法里面已经自动处理了,就是再次发起了一次获取用户Open Id的请求。各位小伙伴注意啦:访问授权Url返回的Code码只能使用一次,否则会报下面这个错误:error:invalid_grant,error_code:21325,request:/oauth2/access_token,error_uri:/oauth2/access_token,error_description:invalid authorization code:2c2cb4e1f6b70650acbe1dad757ea6bb二。 下面做了个测试的控制台程序,ClientId和ClientSecret,CallbackUrl请改为自己的。1. usingSystem;2. usingSystem.Collections.Generic;3. usingSystem.Linq;4. usingSystem.Text;5. usingSystem.Diagnostics;6. 7. usingGeRenXing.OpenPlatform;8. 9. namespaceGeRenXing.OpenPlatform.Test10. 11. classProgram12. 13. privatestaticDictionarym_oauthClients;14. staticvoidMain(stringargs)15. 16. /初始化开放平台客户端(请替换成自己的ClientId,ClientScrert,CallbackUrl)17. m_oauthClients=newDictionary();18. m_oauthClientssinaweibo=newOpenPlatform.OAuthClient.SinaWeiBoClient(YouClientId,YouClientScrert,YouCallbackUrl);19. m_oauthClientsqq=newOpenPlatform.OAuthClient.TencentQQClient(YouClientId,YouClientScrert,YouCallbackUrl);20. m_oauthClientstaobao=newOpenPlatform.OAuthClient.TaoBaoClient(YouClientId,YouClientScrert,YouCallbackUrl);21. 22. /测试23. OAuthTest(sinaweibo);24. /OAuthTest(qq);25. /OAuthTest(taobao);26. 27. Console.ReadKey(true);28. 29. 30. privatestaticvoidOAuthTest(StringplatformCode)31. 32. StringauthorizeUrl=String.Empty;33. if(String.IsNullOrEmpty(platformCode)platformCode=sinaweibo;34. 35. Console.WriteLine(OpenPlatformRequestFor+platformCode);36. Console.WriteLine();37. 38. IOAuthClientoauthClient=m_oauthClientsplatformCode;39. oauthClient.Option.State=platformCode;40. 41. /第一步:获取开放平台授权地址42. authorizeUrl=m_oauthClientsplatformCode.GetAuthorizeUrl(ResponseType.Code);43. Console.WriteLine(Step1-OAuth2.0forRedirectAuthorizeUrl:);44. Console.WriteLine(authorizeUrl);45. 46. /第二步:打开IE浏览器获取Code47. Processp=newProcess();48. ProcessStartInfopsi=newProcessStartInfo();49. psi.Arguments=authorizeUrl;50. psi.FileName=C:ProgramFilesInternetExploreriexplore.exe;51. p.StartInfo=psi;52. p.Start();53. 54. Console.WriteLine();55. Console.WriteLine(OAuth2.0InputServerResponseCode);56. Stringcode=Console.ReadLine();57. 58. /第三步:获取开放平台授权令牌59. oauthClient=m_oauthClientsplatformCode;60. AuthTokenaccessToken=oauthClient.GetAccessTokenByAuthorizationCode(code);61. if(accessToken!=null)62. 63. Console.WriteLine();64. Console.WriteLine(Step2-OAuth2.0forAccessToken:+accessToken.AccessToken);65. /输出原始响应数据66. Console.WriteLine(GetAccessTokenRawResponse:);67. Console.WriteLine(oauthClient.Token.TraceInfo);68. 69. /第四步:调用开放平台API,获取开放平台用户信息70. dynamicoauthProfile=oauthClient.User.GetUserInfo();71. 72. /输出解析出来的用户昵称73. Console.WriteLine();74. Console.WriteLine(Step3-CallOpenAPIUserInfo:);75. Console.WriteLine(UserInfoNickname:+oauthClient.Token.User.Nickname);76. /输出原始响应数据77. Console.WriteLine(GetUserInfoRawResponse:);78. Console.WriteLine(oauthClient.Token.TraceInfo);79. 80. 81. 82. 三。 下面给出几张测试的截图:SianWeiBo Oauth2.0+QQ OAuth2.0+TaoBao OAuth2.0+【编辑推荐】1. .NET界面控件Essential Studio全线升级至2014 v3 2. .NET 编译器(”Roslyn“)介绍 3. .NET 核心开源 4. 为什么.NET一开源一跨平台,一些人就在喊Java去死? 5. .NET支持多平台后的一点拙见
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!