ios下新浪腾讯oauth认证对比
2011-05-19 17:03 v2m 阅读(776) 评论(1) 编辑 收藏 举报现在大家一般都用oauthconsumer进行oauth认证,但是如果不修改一点什么的话,新浪跟腾讯的oauth认证都不能用它完成.
对于新浪来说,修改的地方就是mutableurlrequest.m中添加
for ( NSString *parameterName in [[extraOAuthParameters allKeys] sortedArrayUsingSelector: @selector (compare:)]) { [parameterPairs addObject:[[OARequestParameter requestParameterWithName:parameterName value:[extraOAuthParameters objectForKey:parameterName]] URLEncodedNameValuePair]]; } |
因为consumer的是1.0,而新浪的是1.0a,要求各参数都参与加密运算,然后在需要附加额外参数的地方添加就行了:
OAMutableURLRequest *request;
[request setParameters:[NSArray arrayWithObjects:[[OARequestParameter alloc] initWithName:@"page" value:@"0"],nil]];
[request setParameters:[NSArray arrayWithObjects:[[OARequestParameter alloc] initWithName:@"page" value:@"0"],nil]];
1,新浪是鼓励在header中添加所需参数的,放在url中不行 腾讯是暂时不支持header方式传参的,必须接在url后面
2,两者都需要一个auth_verifier,其中腾讯的第一步更必须一个callback参数,手机端开发此指为null
3,腾讯的一个陷进是,官方说是32位,其实再看看官方提供的demo:
- (NSString *)generateNonce {
// Just a simple implementation of a random number between 123400 and 9999999
return [NSString stringWithFormat:@"%u", arc4random() % (9999999 - 123400) + 123400];
}
// Just a simple implementation of a random number between 123400 and 9999999
return [NSString stringWithFormat:@"%u", arc4random() % (9999999 - 123400) + 123400];
}
sina的得到32位的函数是
- (NSString *)generateNonce
{
CFUUIDRef theUUID = CFUUIDCreate(NULL);
CFStringRef string = CFUUIDCreateString(NULL, theUUID);
NSMakeCollectable(theUUID);
return (NSString *)string;
}
{
CFUUIDRef theUUID = CFUUIDCreate(NULL);
CFStringRef string = CFUUIDCreateString(NULL, theUUID);
NSMakeCollectable(theUUID);
return (NSString *)string;
}
伤得起么?
主要就是这几点的不同了.
研究下官方提供的网友的demo,对比看看这个库,很容易明白.
附:获取qq收藏列表api更正
3.fav/list_t 收藏的微博列表 fav/list_t 收藏的微博列表 URL:http: //open.t.qq.com/api/fav/list_t 格式:xml,json HTTP请求方式:GET 是否需要鉴权: true 请求数限制: true 关于请求数限制,参见接口访问权限说明 请求参数:oauth标准参数,并带上以下参数 Format:返回数据的格式 是(json或xml) Pageflag:分页标识(0:第一页,1:向下翻页,2向上翻页) nextTime: 向下翻页起始时间(第一页 时填0,继续翻页:填上一次请求返回的nexttime时间,) Prevtime: 向下翻,上一次请求返回的prevtime事件 Reqnum:每次请求记录的条数(1-20条) Lastid:第一页 时填0,继续向下翻页,填上一次请求返回的最后一条记录ID,翻页用 // 下面这个添加上 pagetime:向下翻页填上上一次请求返回的nexttime 向上翻页填上上一次请求返回的prevtime |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架