qq互联只需要备案即可申请,申请成功后可以到qq互联官网查看教程,本站开始想使用js的教程但是由于本站需要绑定本站的账号用js教程无法完成,所以使用原始的oauth2.0来完成。

申请qq互联接口

qq互联官网

申请的时候需要注意将申请的应用名称和备案域名的网站名称一致才能通过

开始编码实现

  1. 展示qq登录的按钮,可以到官网下载登录的logo。
  2. 将点击按钮后的链接跳到你申请的回掉页面。
  3. 回掉页面设计一般是绑定已有账号和绑定新账号其实就是登录和注册。
  4. 回掉页面展示效果(可自行设计)。
  5. 实现服务端的业务逻辑。

查阅相关案例都说qq登录无须绑定已有账号,这样失去了qq登录的用户体验,但是本人觉得还是有必要的,下次登录的话即可直接登录。

服务端代码

 public ActionResult QQReturn(){int qqid = 0;string name = "", image = "",sex="";#region 首次调用if (string.IsNullOrEmpty(Request["code"])){#region 获取codestring url = "https://graph.qq.com/oauth2.0/authorize?response_type=code&client_id=" + appid + "&redirect_uri=" + HttpUtility.UrlEncode("http://pqpqpq.cn/account/qqreturn") + "&state=loginsuccess&scope=get_user_info,get_info";Response.Redirect(url);#endregion}else{#region 获取access_tokenif (Request["state"] == "loginsuccess"){string code = Request["code"];string url = "https://graph.qq.com/oauth2.0/token?grant_type=authorization_code&client_id=" + appid + "&client_secret=" + appkey + "&code=" + code + "&redirect_uri=" + HttpUtility.UrlEncode("http://pqpqpq.cn/account/qqreturn");string str = RequestType.HttpGet(url);if (!string.IsNullOrEmpty(str) && str.IndexOf('&') != -1){if (!str.Contains("msg")){string[] arr = str.Split('&');string[] arr1 = new string[arr.Length];for (int i = 0; i < arr.Length; i++){arr1[i] = arr[i].Split('=')[1];}access_token = arr1[0];refresh_token = arr1[2];expires_in = arr1[1];}}}#endregion} #endregionstring url1 = "https://graph.qq.com/oauth2.0/me?access_token=" + access_token;string str1 = RequestType.HttpGet(url1);if (!string.IsNullOrEmpty(str1)){str1 = str1.Replace("callback(", "").Replace(")", "").Replace(";", "");}//AddLog(str1);AccessToken openid = JsonConvert.DeserializeObject<AccessToken>(str1);if (openid != null){var isopenid = db.person_qq_login.Where(c => c.openid == openid.openid).FirstOrDefault();if (isopenid == null){#region 插入qq登录信息string geturl = "https://graph.qq.com/user/get_user_info?access_token=" + access_token + "&oauth_consumer_key=" + appid + "&openid=" + openid.openid;string userstr = RequestType.HttpGet(geturl);AddLog(userstr);UserInfo userdata = JsonConvert.DeserializeObject<UserInfo>(userstr);if (userdata.ret == 0){person_qq_login qq = new person_qq_login();qq.figureurl = userdata.figureurl;qq.figureurl_1 = userdata.figureurl_1;qq.figureurl_2 = userdata.figureurl_2;qq.figureurl_qq_1 = userdata.figureurl_qq_1;qq.figureurl_qq_2 = userdata.figureurl_qq_2;qq.gender = userdata.gender;qq.is_yellow_vip = userdata.is_yellow_vip;qq.is_yellow_year_vip = userdata.is_yellow_year_vip;qq.level = userdata.level;qq.msg = userdata.msg;qq.nickname = userdata.nickname;qq.ret = userdata.ret;qq.vip = userdata.vip;qq.yellow_vip_level = userdata.yellow_vip_level;qq.openid = openid.openid;qq.addTime = DateTime.Now;db.person_qq_login.Add(qq);db.SaveChanges();if (db.SaveChanges()>0){qqid = qq.ID;name = userdata.nickname;image = userdata.figureurl_qq_2;sex = userdata.gender;}}#endregion}else{var isuser = db.person_user.Where(c => c.qqID == isopenid.ID).FirstOrDefault();if (isuser == null){qqid = isopenid.ID;name = isopenid.nickname;image = isopenid.figureurl_qq_2;}else{//记录sessionSession["user_model"] = isuser;return RedirectToAction("Index", "Center");}}}ViewData["qqid"] = qqid.ToString();ViewData["nickname"] = name;ViewData["faceimage"] = image;ViewData["sex"] = sex;return View();}

.Net QQ互联教程 1相关推荐

  1. .Net QQ互联教程

    qq互联只需要备案即可申请,申请成功后可以到qq互联官网查看教程,本站开始想使用js的教程但是由于本站需要绑定本站的账号用js教程无法完成,所以使用原始的oauth2.0来完成. 申请qq互联接口 q ...

  2. 彩虹云商城QQ快捷登录设置教程,附QQ互联分发api平台地址

    彩虹代刷网 6.2 版本开始新增了 QQ 快捷登录功能,这个功能出的还是非常好的,用户比较多的网站可能必须要启用这个功能了哟,就是因为方便,可以提高用户留存从而产生更多的回头客! 详情介绍 大家都知道 ...

  3. Discuz!x3.4 QQ互联跳过完善资料直接登录(详细教程方法)

    Discuz!x3.4 QQ互联跳过完善资料直接登录(详细教程方法) 有很多人都为QQ互联的问题困扰,最近我正在研究QQ登录怎么才能避开完善信息直接登录的问题,结果经过几天的反复测验终于被我找到了方法 ...

  4. discuz设置用户每天回帖数_[建站教程]Discuz3.4设置QQ互联登陆教程

    虽然现在很多人已经不在使用QQ了,但瘦死的骆驼比马大,QQ的用户基数还是很大,而且QQ里有大量的年轻用户,像我的表妹,表弟刚上初中.他们是忠诚的QQ用户. 为了获取这批年轻的用户,我们还是有必要让网站 ...

  5. discuz X3.4的最新版QQ互联插件配置教程

    一.discuz X3.4的QQ互联都更新了哪些内容 其中的QQ互联功能已升级为允许使用QQ互联官方的 appid,新站点必须到 http://connect.qq.com/ 申请,升级上来的站点不受 ...

  6. QQ互联第三方登录jar包

    TripartiteQQLogin 点击前往gitee 介绍 QQ互联实现的第三方QQ OAuth授权登录模块.简化开发,避免重复造轮子. 软件架构 MAVEN 安装教程 在项目中导入该jar包即可, ...

  7. QQ互联OAuth2.0 .NET SDK 发布以及网站QQ登陆示例代码(转)

    OAuth: OAuth(开放授权)是一个开放标准,允许用户授权第三方网站访问他们存储在另外的服务提供者上的信息,而不需要将用户名和密码提供给第三方网站或分享他们数据的所有内容. QQ登录OAuth2 ...

  8. QQ互联OAuth2.0 .NET SDK 发布以及网站QQ登陆示例代码

    OAuth: OAuth(开放授权)是一个开放标准,允许用户授权第三方网站访问他们存储在另外的服务提供者上的信息,而不需要将用户名和密码提供给第三方网站或分享他们数据的所有内容. QQ登录OAuth2 ...

  9. python调用qq互联_Django项目中实现使用qq第三方登录功能

    使用qq登录的前提是已经在qq互联官网创建网站应用并获取到QQ互联中网站应用的APP ID和APP KEY 1,建路由 # qq登录 path('loginQq/',qq.loginQq,name=' ...

最新文章

  1. POJ 3723 Conscription 最小生成树
  2. 微信公众号配置后台接入
  3. 记一次升级node版本后,运行原vue项目报错问题解决方法
  4. vmware workstation虚拟环境安装及创建虚拟机
  5. iOS手势开发的那点儿事
  6. 数据分析面试都会问到哪些问题
  7. 傲腾服务器硬盘,Intel P5800X傲腾硬盘实测:不愧是世界最强
  8. 书单丨压箱底儿的10本传世计算机经典著作
  9. 推荐几款软件界面模型设计工具
  10. 超级表格终于上线「文件转让」功能!文件调动容易解决!
  11. 使用树莓派搭建直播平台实现b站实时直播
  12. 怎样将表格拆分为两个
  13. 回答“关于用python做机器学习工作中的random_state参数到底是个什么意思”
  14. PCIe系列第三讲、事务层通用 TLP 头结构分析
  15. Code Wars游戏说明
  16. 解决Direct local .aar file dependencies are not supported when building an AAR. The resulting AAR woul
  17. C++设计模式——观察者模式(高屋建瓴)
  18. 如何申请建立邮箱?收费邮箱申请流程有哪些
  19. 【前端实例代码】使用 HTML CSS 和 JavaScript 实现具有彩色发光霓虹灯效果的数字时钟|前端开发 网页制作 基础入门教程
  20. Web页面完整请求及渲染过程

热门文章

  1. L2-014. 列车调度-PAT团体程序设计天梯赛GPLT
  2. java获取redis中各种数据类型key对应的value代码简单封装
  3. RedHat Linux安装Informix v10.x(图文详解)
  4. zabbix分布式监控环境搭建
  5. MYSQL存储过程中事务和DECLARE EXIT/CONTINUE HANDLER的使用
  6. 如何快速将文件中的空格更换成逗号(图文详解)
  7. Watson的未来就是IBM的未来
  8. Java引用类型分析
  9. Android系列之Fragment(三)----Fragment和Activity之间的通信(含接口回调)
  10. Android系统性能调优工具介绍