IOS开源项目--新浪微博
程序员文章站
2023-12-22 11:38:10
...
实现新浪微博的功能。包括微博的展示,发微博,回复微博,展示对应微博的所有评论。效果如下:
下面说一下开发难点。开发难点在于微博的登录OAUTH2认证机制。简单的理解就是第一个请求接口,填写好用户名密码后,请求网址的时候,会生成一个code值拿到这个code值。再用得到的code值作为参数,去下一个接口发送请求。返回值会给你一个token。OK存下这个token。以后所有接口获取数据,必须用到这个token值。用如下代码:
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType{
NSLog(@"%@",request.URL);
NSString *path = [request.URL description];
//判断是否包含code
if ([path containsString:@"code"]) {
NSString *code = [[path componentsSeparatedByString:@"="]lastObject];
NSLog(@"%@",code);
//通过code 换 token
[WebUtils requestTokenWithCode:code andCompletion:^(id obj) {
NSDictionary *dic = obj;
NSString *path = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents/login.plist"];
//把登录成功的信息保存到本地
[dic writeToFile:path atomically:YES];
//登录成功后返回页面
[self dismissViewControllerAnimated:YES completion:nil];
}];
return NO;
}
//通过返回值控制 是否允许访问
return YES;
}
认证机制的过程如上所述,具体参考官方文档。以及所有api获取数据接口
http://open.weibo.com/wiki/Oauth2/authorize
具体实现的源代码请参考github下载理解:
https://github.com/lee727n/SinaWeibo
也可按照commit版本 每个版本的理解。降低一次性理解的难度。
如果觉得有收获,请不要吝啬一颗星星~