浅谈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编程语言开发动态WAP页面
Oct 09 PHP
php curl模拟post提交数据示例
Dec 31 PHP
Drupal7中常用的数据库操作实例
Mar 02 PHP
YII模块实现绑定二级域名的方法
Jul 09 PHP
php插入排序法实现数组排序实例
Feb 16 PHP
php内嵌函数用法实例
Mar 20 PHP
php如何控制用户对图片的访问 PHP禁止图片盗链
Mar 25 PHP
PHP进行批量任务处理不超时的解决方法
Jul 11 PHP
PHP实现的登录,注册及密码修改功能分析
Nov 25 PHP
PHP定义字符串的四种方式详解
Feb 06 PHP
PHP下载文件函数与用法示例
Sep 27 PHP
laravel 解决Validator使用中出现的问题
Oct 25 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生成N个不重复的随机数实例
2013/11/12 PHP
简单谈谈PHP vs Node.js
2015/07/17 PHP
浅谈PHP发送HTTP请求的几种方式
2017/07/25 PHP
从零开始学习jQuery (八) 插播:jQuery实施方案
2011/02/23 Javascript
各浏览器对document.getElementById等方法的实现差异解析
2013/12/05 Javascript
jquery操作复选框(checkbox)的12个小技巧总结
2014/02/04 Javascript
Jquery方式获取iframe页面中的 Dom元素
2014/05/07 Javascript
Javascript 中创建自定义对象的方法汇总
2014/12/04 Javascript
jQuery+PHP+MySQL二级联动下拉菜单实例讲解
2015/10/27 Javascript
javascript发送短信验证码实现代码
2015/11/12 Javascript
Jquery 1.9.1源码分析系列(十二)之筛选操作
2015/12/02 Javascript
Bootstrap菜单按钮及导航实例解析
2016/09/09 Javascript
JavaScript实现设置默认日期范围为最近40天的方法分析
2017/07/12 Javascript
前端插件之Bootstrap Dual Listbox使用教程
2019/07/23 Javascript
vue点击自增和求和的实例代码
2019/11/06 Javascript
Python脚本文件打包成可执行文件的方法
2015/06/02 Python
python中快速进行多个字符替换的方法小结
2016/12/15 Python
详解Django中间件执行顺序
2018/07/16 Python
在Python中使用gRPC的方法示例
2018/08/08 Python
将python依赖包打包成window下可执行文件bat方式
2019/12/26 Python
Python pandas库中的isnull()详解
2019/12/26 Python
浅谈Pytorch torch.optim优化器个性化的使用
2020/02/20 Python
django xadmin action兼容自定义model权限教程
2020/03/30 Python
Win 10下Anaconda虚拟环境的教程
2020/05/18 Python
解决pip安装tensorflow中出现的no module named tensorflow.python 问题方法
2021/02/20 Python
苹果音乐订阅:Apple Music
2018/08/02 全球购物
eDreams意大利:南欧领先的在线旅行社
2018/11/23 全球购物
全球领先的在线cosplay服装商店:RoleCosplay
2020/01/18 全球购物
大学生个人总结的自我评价
2013/10/05 职场文书
幼儿园门卫岗位职责
2014/02/14 职场文书
俞敏洪一分钟演讲稿
2014/08/26 职场文书
小学校园广播稿(3篇)
2014/09/19 职场文书
师德师风整改措施
2014/10/24 职场文书
社区党建工作总结2015
2015/05/13 职场文书
民事答辩状范本
2015/05/21 职场文书
Mysql数据库索引面试题(程序员基础技能)
2021/05/31 MySQL