浅谈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&MYSQL留言板源码
Jul 19 PHP
在Windows系统上安装PHP运行环境文字教程
Jul 19 PHP
CI框架中cookie的操作方法分析
Dec 12 PHP
PHP中生成UUID自定义函数分享
Jun 10 PHP
php上传图片类及用法示例
May 11 PHP
php使用函数pathinfo()、parse_url()和basename()解析URL
Nov 25 PHP
Zend Framework入门教程之Zend_Config组件用法详解
Dec 09 PHP
PHP框架自动加载类文件原理详解
Jun 06 PHP
PHP实现mysqli批量执行多条语句的方法示例
Jul 22 PHP
PHP生成指定范围内的N个不重复的随机数
Mar 18 PHP
php多进程应用场景实例详解
Jul 22 PHP
laravel实现登录时监听事件,添加登录用户的记录方法
Sep 30 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
js限制checkbox勾选的个数以及php获取多个checkbbox的方法深入解析
2013/07/18 PHP
HTML中嵌入PHP的简单方法
2016/02/16 PHP
Yii使用DbTarget实现日志功能的示例代码
2020/07/21 PHP
js实现目录定位正文示例
2013/11/14 Javascript
js 获取、清空input type="file"的值(示例代码)
2013/12/24 Javascript
jQuery多个版本和其他js库冲突的解决方法
2016/08/11 Javascript
JS简单获取当前日期时间的方法(如:2017-03-29 11:41:10 星期四)
2017/03/29 Javascript
深入理解Angular4中的依赖注入
2017/06/07 Javascript
react路由配置方式详解
2017/08/07 Javascript
Vue2 SSR渲染根据不同页面修改 meta
2017/11/20 Javascript
[01:05:12]2014 DOTA2国际邀请赛中国区预选赛 TongFu VS CIS-GAME
2014/05/21 DOTA
python获取糗百图片代码实例
2013/12/18 Python
Python中的元类编程入门指引
2015/04/15 Python
Python使用Scrapy爬取妹子图
2015/05/28 Python
深入解读Python解析XML的几种方式
2016/02/16 Python
pyspark.sql.DataFrame与pandas.DataFrame之间的相互转换实例
2018/08/02 Python
Python使用sort和class实现的多级排序功能示例
2018/08/15 Python
Pandas统计重复的列里面的值方法
2019/01/30 Python
python原类、类的创建过程与方法详解
2019/07/19 Python
Python实现代码统计工具
2019/09/19 Python
详解pycharm2020.1.1专业版安装指南(推荐)
2020/08/07 Python
浅谈基于Canvas的手绘风格图形库Rough.js
2018/03/19 HTML / CSS
人力资源专业推荐信
2013/11/29 职场文书
党员的自我评价范文
2014/01/02 职场文书
安全生产目标责任书
2014/04/14 职场文书
秋季运动会广播稿(30篇)
2014/09/13 职场文书
2014年团委工作总结
2014/11/13 职场文书
个人年终总结怎么写
2015/03/09 职场文书
召开会议通知范文
2015/04/15 职场文书
趣味运动会加油词
2015/07/18 职场文书
导游词之四川熊猫基地
2020/01/13 职场文书
浅谈Python 中的复数问题
2021/05/19 Python
关于springboot 配置date字段返回时间戳的问题
2021/07/25 Java/Android
Python编程编写完善的命令行工具
2021/09/15 Python
Mysql查询时间区间日期列表,不会由于数据表数据影响
2022/04/19 MySQL
JS setTimeout与setInterval的区别
2022/04/20 Javascript