ios下新浪腾讯oauth认证对比

  现在大家一般都用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]];

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];
}

sina的得到32位的函数是

- (NSString *)generateNonce
{
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

  

原文地址:https://www.cnblogs.com/v2m_/p/2051265.html