步骤一:添加应用
进入新浪微博开放平台(没有的话自行注册),进入“管理中心“,点击”创建应用”,选择“微链接应用”,再点击“创建应用”,,选“移动应用”,填写相应的信息,其中应用地址没有的话可随便,勾选平台后提交。注意保存你的App Key和App Secret以备后用。
步骤二:Oauth2.0授权设置
应用创建完后可以在“管理中心”-“我的应用”中查看信息,在“应用信息”–“高级信息”中可以设置网站的授权回调页和取消授权回调页。授权回调页会在用户授权成功后会被回调,同时传回一个“code”参数,开发者可以用code换取Access_Token值。当然如果是移动应用,比如本文是没有自己授权回调页的,建议这里填:https://api.weibo.com/oauth2/default.html 或者 http://www.baidu.com 之类的。如果授权后传回的形式如下:
https://api.weibo.com/oauth2/default.html?code=a6146547f981199c07348837b0629d5d
我们只要获取其中code的值a6146547f981199c07348837b0629d5d即可,注意code的值每次都是不一样的。
步骤三:在你要点击登录的地方调以下代码(注意这里的redirectURI写你自己的回调页)
WBAuthorizeRequest *request = [WBAuthorizeRequest request];
request.redirectURI = @"你的授权回调页网址";
request.scope = @"all";
[WeiboSDK sendRequest:request];
步骤四:在appdelegate引入头文件,遵循代理WeiboSDKDelegate
#import "WeiboSDK.h"
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[WeiboSDK enableDebugMode:YES];
[WeiboSDK registerApp:kAppKey];
return YES;
}
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
return [WeiboSDK handleOpenURL:url delegate:self];
}
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url {
return [WeiboSDK handleOpenURL:url delegate:self];
}
/**
收到一个来自微博客户端程序的请求
收到微博的请求后,第三方应用应该按照请求类型进行处理,处理完后必须通过 [WeiboSDK sendResponse:] 将结果回传给微博
@param request 具体的请求对象
*/
- (void)didReceiveWeiboRequest:(WBBaseRequest *)request {
WBProvideMessageForWeiboResponse *response = [WBProvideMessageForWeiboResponse responseWithMessage:[self messageToShare]];
[WeiboSDK sendResponse:response];
NSLog(@"收到一个来自微博客户端程序的请求");
}
/**
收到一个来自微博客户端程序的响应
收到微博的响应后,第三方应用可以通过响应类型、响应的数据和 WBBaseResponse.userInfo 中的数据完成自己的功能
@param response 具体的响应对象
*/
- (void)didReceiveWeiboResponse:(WBBaseResponse *)response {
NSLog(@"收到一个来自微博客户端程序的响应");
// 这里response就是返回来的数据,包含token,uid等键值对;
NSLog(@"%@",response.userInfo);
NSString *theString = [NSString stringWithFormat:@"https://api.weibo.com/2/users/show.json?access_token=%@&uid=%@",response.userInfo[@"access_token"],response.userInfo[@"uid"]];
// 这里只是通过URL对数据进行请求,可以用系统的也可用AFNetworking,下面我使用对AFNetworking的简单封装过后的方法,请忽略
[NetWork netWorkWithPath:theString Params:[NSDictionary dictionary] CallBack:^(NSDictionary *info, NetType type) {
// 这里info就包含请求回来的用户头像等数据
NSLog(@"%@",info);
}];
}
- (WBMessageObject *)messageToShare {
WBMessageObject *message = [WBMessageObject message];
message.text = @"测试使用";
return message;
}