2013-06-23 49 views
0

在上一个SDK中,读取和发布权限是分开的。所以,在我的代码,只要在我的用户日志正在使用此代码:在Facebook上阅读和发布权限sdk 3.0 iOS

[FBSession openActiveSessionWithReadPermissions:nil 
             allowLoginUI:YES 
            completionHandler: 
    ^(FBSession *session, 
     FBSessionState state, NSError *error) { 
     [self sessionStateChanged:session state:state error:error]; 
    }]; 

我已经看到了Facebook的开发者,当我要发布,应该是我问的发布权限是这样的:

// can include any of the "publish" or "manage" permissions 
NSArray *permissions = 
    [NSArray arrayWithObjects:@"publish_actions", nil]; 

[[FBSession activeSession] reauthorizeWithPublishPermissions:permissions 
          defaultAudience:FBSessionDefaultAudienceFriends 
     completionHandler:^(FBSession *session, NSError *error) { 
     /* handle success + failure in block */ 
     }]; 

由于这是我使用facebook集成我的第一个应用程序,我想问一两件事情:

1)这些会话可以在同一时间开?只有当用户想要发布时,我才会要求发布权限,但是我应该在其他会话中做其他事情吗?就像先关闭它,然后重新打开它,或者我不应该担心? 2)如果我有一个postToFriends按钮,例如,我的伪代码为了使它工作就像这样,对吧?

- (IBAction)postToFriendaction:(id)sender { 
    if (!FBSession.activeSession.isOpen) { 
     /* code from the above for enabling publish permissions*/ 

    } 

,或者我应该改变!FBSession.activeSession.isOpen别的东西,因为没有用户具有读权限登录而已,他从来没有进入if语句。你可以帮我吗?

回答

1
  1. 您引用的两个会话实际上是相同的会话(这是在调用openActiveSession ...之后静态可用的“活动”会话)。所以你不需要对其他会话做任何事情。

  2. 你应该看看SDK附带的鲜美的Facebook样例应用程序。他们都举例说明了如何发布(同时要求发布权限)。