浅谈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 相关文章推荐
一个数据采集类
Feb 14 PHP
PHP中ADODB类详解
Mar 25 PHP
mysql5的sql文件导入到mysql4的方法
Oct 19 PHP
php 连接mssql数据库 初学php笔记
Mar 01 PHP
php模拟socket一次连接,多次发送数据的实现代码
Jul 26 PHP
深入php函数file_get_contents超时处理的方法详解
Jun 03 PHP
基于PHPexecl类生成复杂的报表表头示例
Oct 14 PHP
使用正则去除php代码中的注释方法
Nov 03 PHP
PHP封装函数实现生成随机的字符串验证码
Jan 24 PHP
PHP重定向与伪静态区别
Feb 19 PHP
PHP框架自动加载类文件原理详解
Jun 06 PHP
Thinkphp 在api开发中异常返回依然是html的解决方式
Oct 16 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
世界第一个无线广播电台 KDKA
2021/03/01 无线电
模板引擎Smarty深入浅出介绍
2006/12/06 PHP
深入探讨:PHP使用数据库永久连接方式操作MySQL的是与非
2013/06/05 PHP
Javascript注入技巧
2007/06/22 Javascript
比较详细的关于javascript中void(0)的具体含义解释
2007/08/02 Javascript
JS操作JSON要领详细总结
2013/08/25 Javascript
JavaScript移除数组内重复元素的方法
2015/03/18 Javascript
jQuery EasyUI 菜单与按钮之创建简单的菜单和链接按钮
2015/11/18 Javascript
用headjs来管理和加载js 提高网站加载速度
2016/11/29 Javascript
js正则表达式验证表单【完整版】
2017/03/06 Javascript
vue实现记事本功能
2019/06/26 Javascript
vue中的 $slot 获取插槽的节点实例
2019/11/12 Javascript
15个简单的JS编码标准让你的代码更整洁(小结)
2020/07/16 Javascript
基于javascript的无缝滚动动画1
2020/08/07 Javascript
[02:56]DOTA2上海特锦赛小组赛解说FreeAgain采访花絮
2016/02/27 DOTA
[49:59]KG vs Mineski 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
Python实用日期时间处理方法汇总
2015/05/09 Python
python实现微信接口(itchat)详细介绍
2017/10/23 Python
对python捕获ctrl+c手工中断程序的两种方法详解
2018/12/26 Python
python输出带颜色字体实例方法
2019/09/01 Python
python生成器推导式用法简单示例
2019/10/08 Python
Anaconda和ipython环境适配的实现
2020/04/22 Python
浅谈keras 的抽象后端(from keras import backend as K)
2020/06/16 Python
django filter过滤器实现显示某个类型指定字段不同值方式
2020/07/16 Python
python爬虫使用requests发送post请求示例详解
2020/08/05 Python
Python函数调用追踪实现代码
2020/11/27 Python
解决python 在for循环并且pop数组的时候会跳过某些元素的问题
2020/12/11 Python
NOTINO英国:在线购买美容和香水
2020/02/25 全球购物
4s客服专员岗位职责
2013/12/01 职场文书
售房委托书
2014/08/30 职场文书
招商引资工作汇报材料
2014/10/28 职场文书
2015年教研组工作总结
2015/05/04 职场文书
杨善洲电影观后感
2015/06/04 职场文书
缅怀先烈主题班会
2015/08/14 职场文书
windows server 2016 域环境搭建的方法步骤(图文)
2022/06/25 Servers
MySQL池化框架学习接池自定义
2022/07/23 MySQL