浅谈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 相关文章推荐
一个简单的自动发送邮件系统(一)
Oct 09 PHP
php4的session功能评述(一)
Oct 09 PHP
PHP入门
Oct 09 PHP
php $_SERVER当前完整url的写法
Nov 12 PHP
php获取mysql数据库中的所有表名的代码
Apr 23 PHP
回帖脱衣服的图片实现代码
Feb 15 PHP
zf框架的数据库追踪器使用示例
Mar 13 PHP
PHP获取mysql数据表的字段名称和详细信息的方法
Sep 27 PHP
PHP6新特性分析
Mar 03 PHP
Zend Framework框架中实现Ajax的方法示例
Jun 27 PHP
浅谈Yii乐观锁的使用及原理
Jul 25 PHP
PHP排序算法之快速排序(Quick Sort)及其优化算法详解
Apr 21 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 表单数据的获取代码
2009/03/10 PHP
php数字转汉字代码(算法)
2011/10/08 PHP
必须收藏的23个php实用代码片段
2016/02/02 PHP
通过隐藏option实现select的联动效果
2009/11/10 Javascript
jquery 1.4.2发布!主要是性能与API
2010/02/25 Javascript
JS+CSS实现一个气泡提示框
2013/08/18 Javascript
css如何让浮动元素水平居中
2015/08/07 Javascript
jquery实现页面虚拟键盘特效
2015/08/08 Javascript
jQuery实现的导航动画效果(附demo源码)
2016/04/01 Javascript
node.js 动态执行脚本
2016/06/02 Javascript
javascript类型系统——日期Date对象全面了解
2016/07/13 Javascript
Angular限制input框输入金额(是小数的话只保留两位小数点)
2017/07/13 Javascript
基于js 本地存储(详解)
2017/08/16 Javascript
学习JS中的DOM节点以及操作
2018/04/30 Javascript
原生JS forEach()和map()遍历的区别、兼容写法及jQuery $.each、$.map遍历操作
2019/02/27 jQuery
jQuery 函数实例分析【函数声明、函数表达式、匿名函数等】
2020/05/19 jQuery
JQuery获得内容和属性方法解析
2020/05/30 jQuery
vue项目中openlayers绘制行政区划
2020/12/24 Vue.js
[00:55]深扒TI7聊天轮盘语音出处3
2017/05/11 DOTA
基于Python闭包及其作用域详解
2017/08/28 Python
Python zip()函数用法实例分析
2018/03/17 Python
python 对txt中每行内容进行批量替换的方法
2018/07/11 Python
python中的decimal类型转换实例详解
2019/06/26 Python
python SocketServer源码深入解读
2019/09/17 Python
Python return语句如何实现结果返回调用
2020/10/15 Python
使用CSS3来代替JS实现交互
2017/08/10 HTML / CSS
巴西备受欢迎的服装和生活方式品牌:FARM Rio
2020/02/04 全球购物
设计毕业生简历中的自我评价
2013/10/01 职场文书
生产车间班组长岗位职责
2014/01/06 职场文书
教师思想作风整顿个人剖析材料
2014/10/10 职场文书
2014年最新离婚协议书范本
2014/10/11 职场文书
2015年社区综治宣传月活动总结
2015/03/25 职场文书
学校计划生育责任书
2015/05/09 职场文书
小学家庭教育心得体会
2016/01/14 职场文书
2016年九九重阳节活动总结
2016/04/01 职场文书
nginx作grpc的反向代理踩坑总结
2021/07/07 Servers