新浪、腾讯和人人网三家OAuth和API问题相关

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

新浪、腾讯和人人网三家OAuth和API问题相关

最近工作中需要用到网站帐号绑定、OAuth授权相关的功能,所以尽管本意是不想接触OAuth这个明显是“程序员折磨程序员”类型的技术,但也只能硬着头皮去解决问题。今天决定把之中遇到的麻烦和解决过程都记录下来,以免再有人走弯路。

在此之前,推荐大家阅读arthurchenjs的文章从实现iPhone的OAuth封装看国内互联网和开放平台,写得太好了,基本能扫清所有障碍。如果看完之后还有问题没解决、或者你觉得iPhone平台和其他平台实现有区别的话,再继续看我这篇吧。

如果你之前没接触过OAuth,那么最好还是阅读下RFC 5849 – The OAuth 1.0 Protocol,这是OAuth协议的非正式RFC文档。其实所有陌生的技术在了解之初最方便、最省事的方法就是读协议——细化到互联网和IT界,自然是RFC最大。虽然看起来文档协议什么的太长(现在很多人似乎逛BBS逛久了再加上微博兴起,网上文章超过一屏就懒的看)耗费时间,但其实这是最短路径。

然后选择OAuth实现库——没错,我们最好别自己造方形轮子。OAuth协议实现细节比较碎,自己实现费时费力,选择现有的库是最佳方案。但一定要注意所选择代码的协议,例如是否可以不开源、商业应用等。Java平台推荐用SINGPOST,架构灵活,扩展方便,代码量适中。基于同样的原因在iPhone平台上可以选择ShareKit,但我对这个不熟悉,不多说。

新浪微博、腾讯微博和人人网中,前两家用的OAuth 1.0,人人网则使用2.0(因为twitter用1.0而facebook用2.0?)。SIGNPOST的实现基于1.0,所以需要进行一定的改写,或者进行再次封装。

基于同一协议实现的不同网站API使用过程中,会出现有的好用有的却不好用的情况,显然是细节的不同。新浪微博和腾讯微博虽然都声称基于RFC 5849开发,但其明显的区别有:

  1. 用OAuth进行帐号认证时候,新浪微博的验证参数需要通过Header中Authorization域进行传递。腾讯微博则只支持url参数传递。这个地方我当时卡了半天。
  2. 对于桌面客户端,获取verifier时候,新浪微博callback url要传递oob,然后自己从网页中抠那个六位数出来;腾讯微博要传递null,跳转的页面url中会带有verifier参数。
  3. 发送内容的时候,验证参数的位置和OAuth认证时候一样。
  4. 这也是最重要的不同点,在计算Signature Base String时候,新浪微博的参数不需要在组合前进行URL编码,而该死的腾讯必须编码,也就是说,组成SBS时候腾讯微博的参数值实际上被URL编码两次,举例来说就是SBS中content部分的值会有大量的%25字符出现(也就是百分号编码后)。但发送的时候,却只编码一次。我无法理解SBS内容和实际POST出去的内容为什么要不同?但事实就是这样,至于你信不信,试一下就知道了。

在这里顺便对腾讯微博的API文档和不靠谱的论坛技术支持表示无语,API文档里面基本每页都有拼写错误;返回的错误码在文档里找不到说明;甚至于最关键的POST图片时候的包体说明竟然是空白的。

人人网用的OAuth 2.0,大大简化了步骤,自己实现起来速度也很快。不过人人网的文档和API测试机制很扭曲。文档太乱,虽然是Wiki形式但完全看不出组织结构,通常一段内容会在多个页面出现,希望能下功夫整理一下。为什么说测试机制很扭曲,是因为它每个高级接口使用时候都必须经过审核,并且在审核通过前只能用测试帐号进行测试。这个测试帐号的好友数还不能多于5个。但总体来说人人网的API开放会让人觉得不错,是因为出现错误时候返回的信息,准确而且详细。

android开发之第三方集成之OAUTH教程篇 基于Android平台的人人网开发流程之OAuth 2.0在移动领域的应用。eoe & 友盟教程大赛+我的新浪微博开发—简单实现(附源码)新浪腾讯、网易、搜狐微博OAuth认证整合Android版。一个完整的新浪微博客户端android版OAuth认证示例。跟Mars老师学的腾讯微博,自己完善改进的仿腾讯微博。有个关于新浪微博Oauth返回到Activity的疑问。新浪微博(旧版apioauth认证非网页版。新浪微博SDK Oauth2.0问题新浪微博采用Oauth发送图片文字。 阅读详情

相关推荐

实现Android平台第三方登录:新浪腾讯人人网

htmltable {th, td {th {pre {简介:本文DEMO介绍如何在Android平台实现第三方登录功能,包括了解OAuth 2.0授权框架、集成社交平台SDK、权限申请、登录流程、处理回调、用户信息存储、UI设计、错误处理、安全性性能优化、以及测试调试。该功能通过用户已有的社交媒体账号授权,简化应用程序的注册或登录过程。

weixin_31597759的博客 852

新浪微博、腾讯微博、人人网授权连接

新浪微博、腾讯微博、人人网授权连接含一键发布PHP版         你是否有过这样的经历,每到一个网站都要求你注册一个账号,注册还有很多限制,比如用户名不能为数字特殊字符或汉字,密码要求是数字字母的组合,长度也有限制。有时候注册的一个账号已经被别人注册了。久而久之注册的账号越来越多,密码也越来越多,导致我们自己都不记得注册的账号或密码是多少。这是一件非常痛苦的事情。而如今

paolei的笔记 3879

android客户端接入新浪腾讯微博以及人人网

本文原创http://blog.csdn.net/yanbin1079415046,转载请注明出处。   从事android工作也有段时间了,碍于肚子里料不多,一直也没写过什么东西。最近刚好项目中要接入新浪微博,就顺便研究了一下android客户端接入腾讯微博人人网。由于是第一次写东西,加上本人小菜鸟一个,请高手勿喷,觉得文章没用的飘过,当然啦,觉得还有点用的就看看吧。好了,废话不多说了,进入

qingniaofy的专栏 2584

OAuth完全手册_国内篇

Preface: 开发目的及进展   利用工作上关于SNS网站的研究,将多个SNS平台集成起来,一键分享。利用闲暇时间做了一个demo,还有很多需要改进的地方,请大家多多指教。   目前基本进展是完成了包括新浪微博、腾讯微博、QQ空间、人人网、开心网、豆瓣网、搜狐微博、网易微博在内的8个国内主要网站OAuth认证以及简单api的使用。为此我总结成一篇博客,详细分析一下OAuth认证过程

dreamkid0924的专栏 4023

android接入原生第三方登录(微信登录、QQ登录、新浪微博登录)

第一步:去对应的平台上注册app的相关信息,这一步,可参考我的另外一个篇,关于接入亲加通信云的文章     各个平台注册应用信息的地址如下:                新浪微博                 http://open.weibo.com                腾讯微博                 http://dev.t.qq.com          

shangandeyu_kun的博客 1845

人人网OAuth认证Android下的实现(非SDK方式)

前段时间准备做一个可以一键发布微博(状态)到人人网、QQ空间及各大微博的应用,新浪微博腾讯微博的网上资料比较多,OAuth的认证方式也差不多,很容易就搞定了。只是人人网的搞得很另类,费了很大的周折才算完成,不过让人郁闷的是发布人人网状态的API属于“高级API”,要通过审核才能使用,而悲剧是我的应用最终没有通过审核,而未通过的审核的原因也把我雷到外焦里嫩,不发牢骚了。因为没有通过审核,这个应用也

zcljy0318的专栏 3968

从零开始学新浪微博分享第三方登陆(附源码下载)

从零开始学新浪微博分享第三方登陆(附源码下载) 目录(?)[+]          今天抽时间整理一下第三方的登陆与分享功能,主要包含新浪微博、腾讯微博、开心网、人人网、QQ空间的第三方登陆与分享以及实现QQ第三方登陆,下面来看下新浪微博的的第三方登陆与实现(另外,说明一点各大交友社区提供的SDK开发文档,可能会有更改,导致以前的SDK版本

u014558889的专栏 1008

java环境下开发oauth1.0以及oauth2.0----十分有帮助

转载自:http://www.cnblogs.com/lingyun1120/archive/2012/07/11/2585767.html  作者:  lingyun1120 其中提到开心网的sdk十分好用,我已经开始使用研究了。 另外闪电网技术团队友情提供了自己基于开心网sdk开发的完整例子程序,对我帮助也很大。 下载地址:  http://download

鼻孔猫加油站 2611

从实现iPhone的OAuth封装看国内互联网开放平台

转自:http://blog.csdn.net/arthurchenjs/article/details/6567563 由于工作需要,我最近接触了现在开放平台基本都会使用的OAuth协议。我相信OAuth是很强大的,但是,终于我还是切身的领教了中国互联网的的强大之处。 我的目的是制作一个iphone平台比较通用的OAuth库封装,通过简单的配置URLkey等参数,就可以快速的支

冷秋魂的专栏 1085

Android学习笔记——OAuth完全手册

本文主要是介绍OAuth认证以及各大平台粗略比较,如有纰漏,望请谅解。 转载请注明:http://www.cnblogs.com/lingyun1120/archive/2012/07/11/2585767.html    Preface: 开发目的及进展   利用工作上关于SNS网站的研究,将多个SNS平台集成起来,一键分享。利用闲暇时间做了一个demo,还有很多需要

HTYBAY的专栏 608

通用社区登陆组件技术分享(开源)上篇:OAuth 授权登陆介绍

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33736832的博客 181

国内主流平台OAuth

Preface: 开发目的及进展   利用工作上关于SNS网站的研究,将多个SNS平台集成起来,一键分享。利用闲暇时间做了一个demo,还有很多需要改进的地方,请大家多多指教。   目前基本进展是完成了包括新浪微博、腾讯微博、QQ空间、人人网、开心网、豆瓣网、搜狐微博、网易微博在内的8个国内主要网站OAuth认证以及简单api的使用。为此我总结成一篇博客,详细分析一下OAuth认证过程

gaohaijiao12345678的专栏 2156

Android应用接入第三方登陆之新浪微博

众所周知,移动互联网在这几年经历了蓬勃发展,到目前为止,移动互联网发展仍然很强劲。其中移动设备系统以android占据主导地位,之前是加拿大的黑莓系统占据主导,但后来随着android系统的问世,黑莓手机操作系统逐渐被android蚕食,目前,全球最为流行的移动操作系统有Google公司的android、苹果(Apple)公司的ios、微软(Microsoft)公司的windows Phone,以

2万+

其他——[转]从实现iPhone的OAuth封装看国内互联网开放平台

虽然我开发的是Android平台的分享应用,但是这篇给我的提示都是很重要的,过段时间,我会把我的开发过程完整的整理出来,所以先把一些文章先拷贝上来。 http://blog.csdn.net/arthurchenjs/article/details/6567563 由于工作需要,我最近接触了现在开放平台基本都会使用的OAuth协议。我相信OAuth是很强大的,但是,终于我还是切身的领...

weixin_30809173的博客 109
上一篇: Xcode 4.3 xcode-select路径问题
下一篇: C#解析HTML
xdonx
博客等级 码龄19年 102粉丝 28原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值