http://wiki.dev.renren.com/wiki/IOS%E6%8E%A5%E5%85%A5%E6%95%99%E7%A8%8B
JSON,FMDB和Renren三個文件夾
在Prefix文件中引入ROConnect.h頭文件
add一個sqlite3.0
接下來將自己的APP
ID和API Key添加到renren.h文件中
頁面控制類RenrenSDKDemoViewController,需要實現RenrenDelegate的代理方法,來處理登錄成功和登錄失敗的情況<RenrenDelegate>
//登陸部分
- (IBAction)ToLogin:(id)sender {
if(![[RenrensharedRenren]isSessionValid]){//未登錄的情況,進行授權登錄
[[RenrensharedRenren]authorizationWithPermisson:nilandDelegate:self];
} else {//已登錄的情況,退出登錄
[[RenrensharedRenren]logout:self];
}
}
/**
* 授權登錄成功時被調用,第三方開發者實現這個方法
* @param renren 傳回代理授權登錄接口請求的Renren類型對象。
*/
- (void)renrenDidLogin:(Renren *)renren
{
}
/**
* 用戶登出成功後被調用 第三方開發者實現這個方法
* @param renren 傳回代理登出接口請求的Renren類型對象。
*/
- (void)renrenDidLogout:(Renren *)renren
{
}
/**
* 授權登錄失敗時被調用,第三方開發者實現這個方法
* @param renren 傳回代理授權登錄接口請求的Renren類型對象。
*/
- (void)renren:(Renren *)renren loginFailWithError:(ROError*)error
{
UIAlertView *alertView =[[[UIAlertViewalloc]initWithTitle:@"錯誤提示" message:@"授權失敗" delegate:nilcancelButtonTitle:@"確定" otherButtonTitles:nil] autorelease];
[alertView show];
}
//下載好友並顯示再tv中
//
// FriViewController.m
// RenrenFriends
//
// Created by imac53 on 12-7-22.
// Copyright (c) 2012年 __MyCompanyName__. All rights reserved.
//
#import "FriViewController.h"
@interface FriViewController ()
@end
@implementation FriViewController
@synthesize tv_friends;
@synthesize friendsList;
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
}
return self;
}
- (void)viewDidLoad
{
[superviewDidLoad];
// Do any additional setup after loading the view from its nib.
if([[RenrensharedRenren]isSessionValid]){//已登錄狀態,設置requestParam,設置請求參數:好友列表第1頁,500條,name字段的數據.
ROGetFriendsInfoRequestParam *requestParam = [[[ROGetFriendsInfoRequestParamalloc]init]autorelease];
requestParam.page = @"1";
requestParam.count = @"500";
requestParam.fields = @"name";
[[RenrensharedRenren]getFriendsInfo:requestParamandDelegate:self];
} else {//未登錄狀態提示用戶"您還沒有授權"
UIAlertView *alertView =[[[UIAlertViewalloc]initWithTitle:@"提示"message:@"您還沒有授權" delegate:nilcancelButtonTitle:@"確定" otherButtonTitles:nil] autorelease];
[alertView show];
}
}
- (void)viewDidUnload
{
[selfsetTv_friends:nil];
[superviewDidUnload];
// Release any retained subviews of the main view.
// e.g. self.myOutlet = nil;
}
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return (interfaceOrientation == UIInterfaceOrientationPortrait);
}
- (void)dealloc {
[tv_friends release];
[super dealloc];
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return [self.friendsListcount];
}
/**
* 接口請求成功,第三方開發者實現這個方法
* @param renren 傳回代理服務器接口請求的Renren類型對象。
* @param response 傳回接口請求的響應。
*/
- (void)renren:(Renren *)renren requestDidReturnResponse:(ROResponse*)response
{
//創建好友數組.
self.friendsList = [[[NSMutableArrayalloc]init] autorelease];
//取得請求結果.
NSMutableArray *friendsArray = (NSMutableArray *)response.rootObject;
//將請求結果對象中的name信息放到數組中.
for (ROUserResponseItem *friendin friendsArray) {
[self.friendsListaddObject:friend.name];
}
//Table View重新加載數據.
[self.tv_friendsreloadData];
}
/**
* 接口請求失敗,第三方開發者實現這個方法
* @param renren 傳回代理服務器接口請求的Renren類型對象。
* @param response 傳回接口請求的錯誤對象。
*/
- (void)renren:(Renren *)renren requestFailWithError:(ROError*)error
{
UIAlertView *alertView =[[[UIAlertViewalloc]initWithTitle:@"錯誤提示" message:@"API請求錯誤" delegate:nilcancelButtonTitle:@"確定" otherButtonTitles:nil] autorelease];
[alertView show];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
if (indexPath.row <self.friendsList.count) {
UITableViewCell *cell = (UITableViewCell*)[tableViewdequeueReusableCellWithIdentifier:@"friendsListCell"];
if (cell == nil) {
cell = [[[UITableViewCellalloc]initWithStyle:UITableViewCellStyleDefaultreuseIdentifier:@"friendsListCell"]autorelease];
}
cell.textLabel.text = (NSString *)[self.friendsListobjectAtIndex:indexPath.row];
return cell;
}
return nil;
}
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
return 44;
}
@end
//delegate函數中不同請求的判斷
if ([request.requestParamObject.methodisEqualToString:@"users.getLoggedInUser"])
if([response.param.methodisEqualToString:@"friends.getFriends"])
//取得當前用戶的id
[[RenrensharedRenren] getLoggedInUserId];
NSUserDefaults *defaults=[NSUserDefaultsstandardUserDefaults];
NSString *uid=[defaults objectForKey:@"session_UserId"];
//獲取用戶信息
//設置參數
userParam.userIDs=uid;
userParam.fields=@"name";
//發送請求
[[RenrensharedRenren] getUsersInfo:userParamandDelegate:self];
- (void)renren:(Renren *)renren requestDidReturnResponse:(ROResponse*)response
if([response.param.methodisEqualToString:@"users.getInfo"])
{
//取得請求結果.
NSMutableArray *userArray = (NSMutableArray *)response.rootObject;
//將請求結果對象中的name信息放到數組中.
for (ROUserResponseItem *userin userArray) {
[self.label_usernamesetText:user.name];
}
}
}
//發佈狀態
- (IBAction)ToLogin:(id)sender {
if(![[Renren sharedRenren] isSessionValid]){//未登錄的情況,進行授權登錄
//授權時需要多加一個參數permisson
NSArray *permisson=[[NSArray alloc] initWithObjects:@"status_update", nil];
[[Renren sharedRenren] authorizationWithPermisson:permisson andDelegate:self];
} else {//已登錄的情況,退出登錄
[[Renren sharedRenren] logout:self];
}
}
- (IBAction)ToPublic:(id)sender {
//要發佈的內容
NSString *meg=tf_public.text;
//配置參數對象
NSMutableDictionary *param=[[NSMutableDictionary alloc] init];
[param setValue:meg forKey:@"status"];
[param setValue:@"status.set" forKey:@"method"];
//調用requestWithParams方法並傳入param
[[Renren sharedRenren] requestWithParams:param andDelegate:self];
}