SDK版本 2.4.0 百度网盘demo链接:http://pan.baidu.com/s/1dDpLDq5
说明:官方的demo只有授权没有获取用户信息 ,链接里的demo是在官方的demo基础上添加了获取用户信息的使用方式。参考:http://www.cnblogs.com/sollyu/p/3663608.html
1、SSO授权:
<span style="font-size:14px;">//授权
- (void)ssoButtonPressed
{
WBAuthorizeRequest *request = [WBAuthorizeRequest request];
request.redirectURI = kRedirectURI;
request.scope = @"all";
request.userInfo = @{@"SSO_From": @"SendMessageToWeiboViewController",
@"Other_Info_1": [NSNumber numberWithInt:123],
@"Other_Info_2": @[@"obj1", @"obj2"],
@"Other_Info_3": @{@"key1": @"obj1", @"key2": @"obj2"}};
[WeiboSDK sendRequest:request];
}</span>
<span style="font-size:14px;">//授权回调 必须写在Appdelegate中
#pragma mark - WeiboSDKDelegate
- (void)didReceiveWeiboResponse:(WBBaseResponse *)response
{
if ([response isKindOfClass:WBAuthorizeResponse.class])
{
NSString *title = @"认证结果";
NSString *message = [NSString stringWithFormat:@"响应状态: %d\nresponse.userId: %@\nresponse.accessToken: %@\n响应UserInfo数据: %@\n原请求UserInfo数据: %@",(int)response.statusCode,[(WBAuthorizeResponse *)response userID], [(WBAuthorizeResponse *)response accessToken], response.userInfo, response.requestUserInfo];
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:title
message:message
delegate:nil
cancelButtonTitle:@"确定"
otherButtonTitles:nil];
self.wbtoken = [(WBAuthorizeResponse *)response accessToken];
self.uid = [(WBAuthorizeResponse *)response userID];
[alert show];
[alert release];
}
}</span>
2、获取用户信息:
<span style="font-size:14px;">//新浪微博获取用户信息
- (void)getUserInfo {
AppDelegate *myDelegate =(AppDelegate*)[[UIApplication sharedApplication] delegate];
NSMutableDictionary *params = [NSMutableDictionary dictionary];
[params setObject:myDelegate.wbtoken forKey:@"access_token"];
[params setObject:myDelegate.uid forKey:@"uid"];
NSLog(@"params:%@", params);
WBHttpRequest * wbRequest = [WBHttpRequest requestWithURL:@"https://api.weibo.com/2/users/show.json" httpMethod:@"GET" params:params delegate:self withTag:@"getUserInfo"];
}</span>
<span style="font-size:14px;">#pragma mark - WBHttpRequestDelegate
/**
收到一个来自微博Http请求的网络返回
@param result 请求返回结果
*/
- (void)request:(WBHttpRequest *)request didFinishLoadingWithResult:(NSString *)result
{
NSError *error;
NSData *data = [result dataUsingEncoding:NSUTF8StringEncoding];
NSDictionary *json = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&error];
if (json == nil)
{
NSLog(@"json parse failed \r\n");
return;
}
NSString *screenname = [json objectForKey:@"screen_name"];
NSString *picture = [json objectForKey:@"profile_image_url"];
NSLog(@"screenname = %@",screenname);
NSLog(@"picture = %@",picture);
NSString *title = nil;
UIAlertView *alert = nil;
title = @"收到网络回调";
alert = [[UIAlertView alloc] initWithTitle:title
message:[NSString stringWithFormat:@"%@",result]
delegate:nil
cancelButtonTitle:@"确定"
otherButtonTitles:nil];
[alert show];
[alert release];
}</span>