人人開放平臺

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

}




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章