浅谈PHP接入(第三方登录)QQ登录 OAuth2.0 过程中遇到的坑


Posted in PHP onOctober 13, 2017

前言

绝大多数网站都集成了第三方登录,降低了注册门槛,增强了用户体验。最近看了看 QQ 互联上 QQ 登录的接口文档。接入 QQ 登录的一般流程呢,是这样的:先申请开发者 -> 然后创建应用(拿到一组 AppId 和 AppKey)-> 获取 access_token -> 获取 openid -> 调用 openApi 访问或修改用户信息。

然而,从申请个人开发者开始,坑就来了。

1. 申请(个人)开发者

QQ 互联中申请开发者信息的页面,一些重点太过简陋,缺失细节,比如身份证正面照的相关拍摄细节完全没有描述,我当时就直接上传了这个“身份证正面照”,然后等了 3 天, 3 天后收到腾讯开放平台的邮件通知说审核没通过,需要手持身份证。好吧,那就重拍~~。问了客服之后确定了这个“手持身份证”拍摄的正确姿势,然后我换了平台,在腾讯开放平台中改了我的申请信息,重新上传了身份证,我注意到上传框的下面有拍摄提示,看了下是个小姐姐的手持身份证照片,挺好看的,提示友好,比 QQ 互联上的申请页面好多了。又过了 2 天之后审核通过。

所以,申请开发者的话,最好还是在腾讯开放平台申请吧,信息相对详细,也更友好,QQ 互联给人感觉好久没维护了。

2. 接口调用——发布微博

(1)发布微博的接口 add_t:必需参数为 content 微博内容。调用时必须以数组键值对方式把参数传递进去,否则会报错说没提供参数。

$qc = new QC('你的access_token', '你的openid');
$weibo = [
 'content' => '微博内容'
];
$result = $qc->add_t($weibo);

(2)发布带图片微博的接口 add_pic_t:必需参数为 content 微博内容,和 pic 微博图片。调用时同样以键值对方式传参。而且,图片是以二进制流的形式上传的。而文档中有关它的接口示例,我始终没找到。最后,我采用了 CURLFIle 类实现图片流上传。

$qc = new QC('你的access_token', '你的openid');
$weibo = [
 'content' => '微博内容',
 'pic' => new CURLFile('要上传的图片路径')
];
$result = $qc->add_pic_t($weibo);

注意到 pic 参数值为 CURLFile 类的实例(图片路径最好是绝对路径)。网上有些资料介绍了 file(image_path) 和 file_get_contents(image_path) 方式设置 pic 参数,但我这里都没有成功(微博发布成功,但没有图片)。

小结

主要的坑就这两个,审核平台问题和微博图片上传问题。以后可能还会用,所以在这里作以记录,备忘。

以上这篇浅谈PHP接入(第三方登录)QQ登录 OAuth2.0 过程中遇到的坑就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
PHP 输出缓存详解
Jun 20 PHP
PHP类的使用 实例代码讲解
Dec 28 PHP
php表单提交问题的解决方法
Apr 12 PHP
神盾加密解密教程(三)PHP 神盾解密工具
Jun 08 PHP
php对包含html标签的字符串进行截取的函数分享
Jun 19 PHP
php之curl实现http与https请求的方法
Oct 21 PHP
php中最简单的字符串匹配算法
Dec 16 PHP
浅析THINKPHP的addAll支持的最大数据量
Feb 03 PHP
thinkPHP实现递归循环栏目并按照树形结构无限极输出的方法
May 19 PHP
深入理解PHP 数组之count 函数
Jun 13 PHP
PHP实现微信小程序人脸识别刷脸登录功能
May 24 PHP
PHP基于openssl实现的非对称加密操作示例
Jan 11 PHP
PHP长网址与短网址的实现方法
Oct 13 #PHP
如何直接访问php实例对象中的private属性详解
Oct 12 #PHP
thinkphp中的多表关联查询的实例详解
Oct 12 #PHP
laravel 5异常错误:FatalErrorException in Handler.php line 38的解决
Oct 12 #PHP
利用PHP实现开心消消乐的算法示例
Oct 12 #PHP
深入理解PHP中mt_rand()随机数的安全
Oct 12 #PHP
php表单习惯用的正则表达式
Oct 11 #PHP
You might like
PHP针对JSON操作实例分析
2015/01/12 PHP
PHP长连接实现与使用方法详解
2018/02/11 PHP
PHP常量DIRECTORY_SEPARATOR原理及用法解析
2020/11/10 PHP
jquery api参考 visualjquery 中国线路 速度快
2007/11/30 Javascript
js文字滚动停顿效果代码
2008/06/28 Javascript
经典海量jQuery插件 大家可以收藏一下
2010/02/07 Javascript
Javascript Cookie读写删除操作的函数
2010/03/02 Javascript
js检测网络是否具体连接功能的代码
2014/05/23 Javascript
javascript上下方向键控制表格行选中并高亮显示的方法
2015/02/13 Javascript
删除javascript所创建子节点的方法
2015/05/21 Javascript
JS基于cookie实现来宾统计记录访客信息的方法
2015/08/04 Javascript
js+html5实现canvas绘制椭圆形图案的方法
2016/05/21 Javascript
json对象及数组键值的深度大小写转换问题详解
2018/03/30 Javascript
Node.js的Koa实现JWT用户认证方法
2018/05/05 Javascript
解决vue做详情页跳转的时候使用created方法 数据不会更新问题
2020/07/24 Javascript
解决ant Design中this.props.form.validateFields未执行的问题
2020/10/27 Javascript
js基于canvas实现时钟组件
2021/02/07 Javascript
使用python获取CPU和内存信息的思路与实现(linux系统)
2014/01/03 Python
粗略分析Python中的内存泄漏
2015/04/23 Python
Python实现压缩和解压缩ZIP文件的方法分析
2017/09/28 Python
python爬虫_微信公众号推送信息爬取的实例
2017/10/23 Python
python批量替换多文件字符串问题详解
2018/04/22 Python
Python登录注册验证功能实现
2018/06/18 Python
Python中浅拷贝copy与深拷贝deepcopy的简单理解
2018/10/26 Python
pyqt 实现QlineEdit 输入密码显示成圆点的方法
2019/06/24 Python
python实现简单井字棋游戏
2020/03/04 Python
利用HTML5+css3+jquery+weui实现仿微信聊天界面功能
2018/01/08 HTML / CSS
浅谈HTML5 服务器推送事件(Server-sent Events)
2017/08/01 HTML / CSS
2019年.net常见面试问题
2012/02/12 面试题
毕业生求职自荐信怎么写
2014/01/08 职场文书
个人简历中的自我评价怎么写
2014/01/26 职场文书
食品安全检查制度
2014/02/03 职场文书
员工试用期考核自我鉴定
2014/04/13 职场文书
特岗教师个人总结
2015/02/10 职场文书
幼儿园校车安全责任书
2015/05/08 职场文书
导游词之日本富士山
2020/01/06 职场文书