浅谈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 相关文章推荐
将RTF格式的文件转成HTML并在网页中显示的代码
Oct 09 PHP
PHP集成FCK的函数代码
Sep 27 PHP
php获取服务器信息的实现代码
Feb 04 PHP
关于PHP内存溢出问题的解决方法
Jun 25 PHP
php实现mysql事务处理的方法
Dec 25 PHP
php遍历树的常用方法汇总
Jun 18 PHP
thinkphp5.0整合phpsocketio完整攻略(绕坑)
Oct 12 PHP
PHP Laravel中的Trait使用方法
Jan 20 PHP
PHP count()函数讲解
Feb 03 PHP
php函数式编程简单示例
Aug 08 PHP
PHP cookie与session会话基本用法实例分析
Nov 18 PHP
PHP中类与对象功能、用法实例解读
Mar 27 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
Jquery作者John Resig自己封装的javascript 常用函数
2009/11/09 Javascript
读取input:file的路径并显示本地图片的方法
2013/09/23 Javascript
13个PHP函数超实用
2015/10/21 Javascript
基于jquery实现全屏滚动效果
2015/11/26 Javascript
JavaScript对象参数的引用传递
2016/01/14 Javascript
Angular发布1.5正式版,专注于向Angular 2的过渡
2016/02/18 Javascript
关于vue.js弹窗组件的知识点总结
2016/09/11 Javascript
Vue2实现组件props双向绑定
2016/12/02 Javascript
基于js中的原型(全面讲解)
2017/09/19 Javascript
微信小程序返回多级页面的实现方法
2017/10/27 Javascript
AngularJS下$http服务Post方法传递json参数的实例
2018/03/29 Javascript
详解Puppeteer 入门教程
2018/05/09 Javascript
React Hooks的深入理解与使用
2018/11/12 Javascript
说说如何使用Vuex进行状态管理(小结)
2019/04/14 Javascript
搭建一个Koa后端项目脚手架的方法步骤
2019/05/30 Javascript
webpack HappyPack实战详解
2019/10/08 Javascript
layui实现form表单同时提交数据和文件的代码
2019/10/25 Javascript
微信小程序商品详情页底部弹出框
2019/11/22 Javascript
解决vue elementUI中table里数字、字母、中文混合排序问题
2020/01/07 Javascript
vue在App.vue文件中监听路由变化刷新页面操作
2020/08/14 Javascript
利用Python实现简单的相似图片搜索的教程
2015/04/23 Python
在IIS服务器上以CGI方式运行Python脚本的教程
2015/04/25 Python
在Django框架中伪造捕捉到的URLconf值的方法
2015/07/18 Python
解决PyCharm中光标变粗的问题
2017/08/05 Python
TensorFlow车牌识别完整版代码(含车牌数据集)
2019/08/05 Python
Python利用WMI实现ping命令的例子
2019/08/14 Python
Myholidays美国:在线旅游网站
2019/08/16 全球购物
求职自荐信的格式
2014/04/07 职场文书
勤奋学习演讲稿
2014/05/10 职场文书
先进班集体事迹材料
2014/12/25 职场文书
大学生考试作弊被抓检讨书
2014/12/27 职场文书
毕业生入职感言
2015/07/31 职场文书
2016年小学推普宣传周活动总结
2016/04/06 职场文书
Java字符缓冲流BufferedWriter
2022/04/09 Java/Android
vue实现Toast组件轻提示
2022/04/10 Vue.js
Python使用Beautiful Soup(BS4)库解析HTML和XML
2022/06/05 Python