Facebook SDK(iOS)初学讲解 (转)
Facebook SDK已经升级到3.1.1了,最近使用了其最新的sdk,完成项目内登陆和发帖两个基本功能。这两个功能在Facebook SDK里面已经单独存在了,使用起来非常简单。但是使用Facebook SDK的难点是理解Facebook的构建基础。这里除了将基本的操作外,也说点当前我的理解(也是从官网文档中看的,但理解不一定正确),不过推荐读者 还是多去官网自己看吧,毕竟那里是根本。
首先Facebook里面有两种基本类型,一个是对象,一个连接。对象就是指Facebook的人、图片、事件等各种独立单位。连接是指对象间的联 系。人有喜好这样一个连接,通过喜好连接,我们能找到人所有喜欢的东西。Facebook将所有的对象通过连接织成社交网络。这是一个Facebook最 基本的概念(我觉得)。基于这个社交图(或称社交网络),我们可以通过graph path去访问这个网络内的任何信息,只要你有访问权限。一个人一般有很多connection,如Feed(实时消息),likes,friends。 我们可以通过"me/feed“去访问实时消息,也可以发布消息。
- //session isn't open, so we have to open it
- if( ![[FBSession activeSession] isOpen] )
- {
- //open session with write permission
- if( [FBSession openActiveSessionWithPublishPermissions:[NSArray arrayWithObject:@"publish_actions"] defaultAudience:FBSessionDefaultAudienceEveryone allowLoginUI:YES
- completionHandler:^(FBSession *session, FBSessionState status, NSError *error) {
- if( error )
- {
- FACEBOOK_LOG(@"facebook---> openActiveSessionWithPublishPermissions() failed!!!!!!!!!!");
- }
- else
- {
- FACEBOOK_LOG(@"facebook---> openActiveSessionWithPublishPermissions() successfully.");
- }
- //invokde delegate
- if( m_pDelegate )
- {
- m_pDelegate->sessionStateChange( session, status, error );
- }
- }] )
- {
- FACEBOOK_LOG(@"facebook---> openActiveSessionWithPublishPermissions() return true.");
- }
- else
- {
- FACEBOOK_LOG(@"facebook---> openActiveSessionWithPublishPermissions() return false.");
- return false;
- }
- }
一旦登陆并拥有写权限,我们就可以发消息了。
- NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObjectsAndKeys:
- m_pstrLastMessage, @"message",
- @"http://www.yourweb.com", @"link",
- @"http://static.ak.fbcdn.net/rsrc.php/v2/y2/r/lpa-16iu9uw.gif", @"picture",
- @"China star", @"name",
- @"I love China", @"description",
- nil];
- [FBRequestConnection startWithGraphPath:@"me/feed" parameters:params HTTPMethod:@"POST"
- completionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
- if( error )
- {
- FACEBOOK_LOG2( @"facebook---> message( \"%@\" ) posted failed!!!!!!!!!", m_pstrLastMessage );
- }
- else
- {
- FACEBOOK_LOG2( @"facebook---> message( \"%@\" ) posted successfully.", m_pstrLastMessage );
- }
- }];