浅谈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入门速成(2)
Oct 09 PHP
php中文本数据翻页(留言本翻页)
Oct 09 PHP
杏林同学录(七)
Oct 09 PHP
第四节--构造函数和析构函数
Nov 16 PHP
php分页示例代码
Mar 19 PHP
解析PHP提交后跳转
Jun 23 PHP
解析mysql中UNIX_TIMESTAMP()函数与php中time()函数的区别
Jun 24 PHP
php正则取img标记中任意属性(正则替换去掉或改变图片img标记中的任意属性)
Aug 13 PHP
CodeIgniter启用缓存和清除缓存的方法
Jun 12 PHP
用 Composer构建自己的 PHP 框架之基础准备
Oct 30 PHP
php动态绑定变量的用法
Jun 16 PHP
PHP定义字符串的四种方式详解
Feb 06 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下清空字符串中的HTML标签的代码
2010/09/06 PHP
php添加文章时生成静态HTML文章的实现代码
2013/02/17 PHP
使用Linux五年积累的一些经验技巧
2013/06/20 PHP
PHP两种实现无级递归分类的方法
2017/03/02 PHP
PHP检查端口是否可以被绑定的方法示例
2018/08/09 PHP
php设计模式之模板模式实例分析【星际争霸游戏案例】
2020/03/24 PHP
浅谈PHP中的那些魔术常量
2020/12/02 PHP
firefox事件处理之自动查找event的函数(用于onclick=foo())
2010/08/05 Javascript
Jquery图片滚动与幻灯片的实例代码
2013/04/08 Javascript
js对图片base64编码字符串进行解码并输出图像示例
2014/03/17 Javascript
浅谈Node.js中的定时器
2015/06/18 Javascript
Node.js插件安装图文教程
2016/05/06 Javascript
Backbone View 之间通信的三种方式
2016/08/09 Javascript
jQuery+HTML5实现弹出创意搜索框层
2016/12/29 Javascript
vue 本地环境跨域请求proxyTable的方法
2018/09/19 Javascript
教你搭建按需加载的Vue组件库(小结)
2019/07/29 Javascript
使用apifm-wxapi模块中的问题及解决方法
2019/08/05 Javascript
解决vant中 tab栏遇到的坑 van-tabs
2020/11/04 Javascript
nodeJs项目在阿里云的简单部署
2020/11/27 NodeJs
Python中给List添加元素的4种方法分享
2014/11/28 Python
python使用Tkinter显示网络图片的方法
2015/04/24 Python
Django的session中对于用户验证的支持
2015/07/23 Python
Python使用Pycrypto库进行RSA加密的方法详解
2016/06/06 Python
Python基础语言学习笔记总结(精华)
2017/11/14 Python
python通过Windows下远程控制Linux系统
2018/06/20 Python
Python返回数组/List长度的实例
2018/06/23 Python
python的继承知识点总结
2018/12/10 Python
菲律宾购物网站:Lazada菲律宾
2018/04/05 全球购物
学员自我鉴定
2014/03/19 职场文书
国旗下的讲话演讲稿
2014/05/08 职场文书
党的群众路线教育实践方案
2014/05/11 职场文书
工作表扬信
2015/01/17 职场文书
2016年党建工作简报
2015/11/26 职场文书
公安干警正风肃纪心得体会
2016/01/15 职场文书
个人销售励志奋斗口号
2019/12/05 职场文书
CSS精灵图的原理与使用方法介绍
2022/03/17 HTML / CSS