浅谈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之第八天
Oct 09 PHP
BBS(php & mysql)完整版(八)
Oct 09 PHP
dedecms后台验证码总提示错误的解决方法
Mar 21 PHP
Php Image Resize图片大小调整的函数代码
Jan 17 PHP
php中对2个数组相加的函数
Jun 24 PHP
基于PHP Socket配置以及实例的详细介绍
Jun 13 PHP
Docker 如何布置PHP开发环境
Jun 21 PHP
老生常谈文本文件和二进制文件的区别
Feb 27 PHP
PHP curl 或 file_get_contents 获取需要授权页面的方法
May 05 PHP
PHP基于关联数组20行代码搞定约瑟夫问题示例
Nov 07 PHP
统计PHP目录中的文件数方法
Mar 05 PHP
Laravel 解决composer相关操作提示php相关异常的问题
Oct 23 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 字符串函数收集
2010/03/29 PHP
php生成QRcode实例
2014/09/22 PHP
一个实用的php验证码类
2017/07/06 PHP
PHP操作Redis常用命令的实例详解
2020/12/23 PHP
JavaScript弹簧振子超简洁版 完全符合能量守恒,胡克定理
2009/10/25 Javascript
基于jquery的设置页面文本框 只能输入数字的实现代码
2011/04/19 Javascript
20个非常棒的 jQuery 幻灯片插件和教程分享
2011/08/23 Javascript
iphone safari不支持position fixed的解决方法
2012/05/04 Javascript
Javascript全局变量var与不var的区别深入解析
2013/12/09 Javascript
jQuery中:submit选择器用法实例
2015/01/03 Javascript
jQuery插件MixItUp实现动画过滤和排序
2015/04/12 Javascript
javascript学习笔记之函数定义
2015/06/25 Javascript
jQuery插件开发精品教程让你的jQuery提升一个台阶
2016/01/27 Javascript
学习vue.js计算属性
2016/12/03 Javascript
Javascript计算二维数组重复值示例代码
2016/12/18 Javascript
解决vue2.x中数据渲染以及vuex缓存的问题
2017/07/13 Javascript
Vue.js实现数据响应的方法
2018/08/13 Javascript
CryptoJS中AES实现前后端通用加解密技术
2018/12/18 Javascript
vue读取本地的excel文件并显示在网页上方法示例
2019/05/29 Javascript
微信小程序实现点击生成随机验证码
2020/09/09 Javascript
Python脚本实现网卡流量监控
2015/02/14 Python
Python遍历numpy数组的实例
2018/04/04 Python
pytorch .detach() .detach_() 和 .data用于切断反向传播的实现
2019/12/27 Python
Python 利用flask搭建一个共享服务器的步骤
2020/12/05 Python
css3实现一个div设置多张背景图片及background-image属性实例演示
2017/08/10 HTML / CSS
CSS3提交意见输入框样式代码
2014/10/30 HTML / CSS
泰国办公用品购物网站:OfficeMate
2018/02/04 全球购物
婴儿地球:Baby Earth
2018/12/25 全球购物
外贸采购员求职的自我评价
2013/11/26 职场文书
大学生毕业求职自荐书范文
2014/02/04 职场文书
班干部演讲稿
2014/04/24 职场文书
火灾现场处置方案
2014/05/28 职场文书
2014年外联部工作总结
2014/11/17 职场文书
巾帼标兵事迹材料
2014/12/26 职场文书
2016年基层党组织创先争优承诺书
2016/03/25 职场文书
关于ObjectUtils.isEmpty() 和 null 的区别
2022/02/28 Java/Android