作者:上海悠u7_ | 来源:互联网 | 2024-10-31 13:07
大多数网站为了降低用户注册门槛并提升使用体验,通常会集成第三方登录功能。本文重点探讨了在使用PHP实现QQ登录OAuth2.0过程中遇到的常见问题及其解决方案。具体步骤包括:首先申请成为开发者,接着创建应用以获取AppId和AppKey,最后通过这些凭据获取accesstoken。文章还详细介绍了在实际开发中可能遇到的问题及相应的解决方法,为开发者提供实用的参考。
前言
绝大多数网站都集成了第三方登录,降低了注册门槛,增强了用户体验。最近看了看 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 过程中遇到的坑就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。