fayhot游戏账号改用社交登陆,支持微博,腾讯qq,人人网账号登陆。微博和人人的sdk都比较规范,调用方式和流程也比较一致。

QQ的就。。。流氓本色。难用到无以复加。基本没法用。

一上来就出问题。

部署了PHP-SDK之后,出现有时能登录,有时不能登录的情况,错误提示是:-1 client request’s parameters are invalid, invalid openid

当时就傻眼了,情不自禁的冒出一句,”我操”,都不是”我擦”.

从readme到帮助文档,再到install和config配置以及example,这尼玛那里是个sdk啊,这根本就是个“腾讯临时工”写的测试脚本吧。。。

为了兼容人人和微博的流程与调用方式,重写了qq联合登陆的sdk,自己实现了oauth2.0授权。

但是针对标题中的问题,解决起来,其实比较简单。关键是文档和编码规范太差劲,才让人觉得望而生畏。

尤其是画蛇添足的弄一个config.inc和自动文件存储授权认证中间code,token等,简直丧尽天良,代码强耦合,改都没法改。

QQ和人人、微博社交正好登陆稍有区别,是在授权后并不返回用户uid,取而代之是返回openid,用于标示用户身份。

通过openid,access_token,appid来读取接口信息,比如get_user_info等等。

解决标题中说的问题,其实很简单:

require_once("API/qqConnectAPI.php");

$qc = new QC();

$acs = $qc->qq_callback();//callback主要是验证 code和state,返回token信息,并写入到文件中存储,方便get_openid从文件中度

$oid = $qc->get_openid();//根据callback获取到的token信息得到openid,所以callback必须在openid前调用

$qc = new QC($acs,$oid);

$uinfo = $qc->get_user_info();

至于为什么很多人都会遇到这个问题,就更简单了,还是由于上面提到的那份丧尽天良的examples的demo.

QQ的sdk会自动检测用户是否填写认证信息,没有填写的话就自动去文件里读取。而example里没有

$qc = new $qc->qq_openid();//没有获取到openid,请求api接口,所以会返回error,invalid openid 原帖地址:http://blog.fayhot.com/?p=820

php sdk qq 错误码,QQ互联登录PHP-SDK invalid openid错误—解决方法相关推荐

  1. 华夏无线为什么无服务器,qq华夏手游为什么登录不了 无法连接服务器解决方法_3DM手游...

    QQ华夏手游作为一款非常不错的国风类手游,里面有着诸多华夏文明在里面,最近有不少小伙伴们反映QQ华夏手游无法连接服务器是怎么回事?下面小编就给大家介绍一下QQ华夏手游无法连接服务器解决方法,希望能够帮 ...

  2. 对接应用宝SDK(YSDK)QQ能登录微信无法登陆的一些解决方法**

    对接应用宝SDK(YSDK)QQ能登录微信无法登陆的一些解决方法 应用宝SDK微信与手Q接入 首先可以去官方文档里查看WXEntryActivity所放的位置是否正确, 还有查看清单文件里 · WXE ...

  3. phpmyadmin登录报错crypt_random_string requires at least one symmetric cipher be loaded 解决方法

    phpmyadmin登录报错crypt_random_string requires at least one symmetric cipher be loaded 解决方法 参考文章: (1)php ...

  4. qq在电脑上总是服务器连接中断,win7系统玩QQ炫舞老是掉线提示与服务器断开连接的解决方法...

    win7系统玩QQ炫舞老是掉线提示与服务器断开连接的问题发生概率较高.怎样来处理win7系统玩QQ炫舞老是掉线提示与服务器断开连接的问题,知道的人估计不多.本站针对win7系统玩QQ炫舞老是掉线提示与 ...

  5. 【求助】AttachThreadInput 返回值为0,GetLastError取得的错误码为5(访问拒绝),怎么解决啊

    [求助]AttachThreadInput 返回值为0,GetLastError取得的错误码为5(访问拒绝),怎么解决啊 // 获取创建前台窗口的线程DWORD dwThread = GetWindo ...

  6. window下 PHP socket 错误码预定义常量, 对应数值,错误信息

    window下 PHP socket 错误码预定义常量, 对应数值,错误信息! php版本: PHP 7.4.0 (cli) (built: Nov 27 2019 10:14:18) ( ZTS V ...

  7. centos配置ssh免密码登录后仍要输入密码的解决方法

    From: https://blog.csdn.net/zwbill/article/details/80448939 前言 在搭建Linux集群服务的时候,主服务器需要启动从服务器的服务,如果通过手 ...

  8. maven项目没有错,但是在项目头上有红叉的解决方法

    maven项目没有错,但是在项目头上有红叉的解决方法 参考文章: (1)maven项目没有错,但是在项目头上有红叉的解决方法 (2)https://www.cnblogs.com/sharpest/p ...

  9. centos在yum install报错:Another app is currently holding the yum lock解决方法

    centos在yum install报错:Another app is currently holding the yum lock解决方法 参考文章: (1)centos在yum install报错 ...

最新文章

  1. 解决git did not exit cleanly (exit code 128)
  2. linux lvm 系统快照,利用Linux LVM进行快照备份
  3. oracle触发器监听数据变化,【Trigger】利用Oracle的触发器,自动记录数据的变动履历...
  4. [10] AOP的注解配置
  5. 为什么同步的StringBuffer从来都不是一个好主意
  6. 提高编写CSS代码效率的10个习惯
  7. 微信web-view 开发_在不到7个月的时间里我如何成为一名Web开发人员-以及如何
  8. (摘)Entity Framework Core 2.1带来更好的SQL语句生成方案
  9. Excel to SQL(2)
  10. 服务器清洗项目,服务器带电清洗流程和注意事项
  11. 关于黑苹果耳机麦克风无法正常输入输出以及VoodooHDA启动慢 解决方法
  12. 适用于Windows的Xcode:在PC上安装Xcode的5种方法
  13. telnet 批量测试(二):telnet 批量测试脚本实现关键代码
  14. r语言 转录本结构及丰度_技术贴 | R语言:envfit环境因子和菌群回归分析
  15. 风险偏好情绪有所改善,非美低位反弹
  16. 记录中通自研面单功能
  17. 正则表达式大全(超详细正则校验内容)
  18. JavaFXGL框架笔记
  19. 凡客之困:物流和信誉在缩水
  20. 用inception_v3提取图片的特征向量

热门文章

  1. 全志T507屏幕切换的两种方式
  2. scala神奇的sortBy方法
  3. ArcGIS 10.6 教程 第03章【基础篇】坐标系
  4. 52个数据可视化图表鉴赏,收藏!
  5. 计算机考证word特殊符号
  6. ubuntu16.04 系统分区与安装
  7. 网友专业设备评测蓝牙运动耳机 倍思挂耳式运动耳机s17上榜
  8. 软考电子商务设计师如何备考?
  9. windows7蓝屏没有修复计算机,解决 Windows 7 中的停止(蓝屏)错误
  10. 软件设计文档如何编写,设计文档内容都包括什么