ghostrider
ghostrider

Reputation: 5259

read and publish permission in facebook sdk 3.0 iOS

In the last SDK, read and publish permissions are separated. So, in my code, whenever the users logs in I am using this code:

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

I have seen in the facebook developer that when I want to publish, I should ask for publish permissions like this:

// 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 */
         }];

Since this is my first app that I am using facebook integration, I want to ask a couple of things:

1) Can these sessions be open at the same time? I will ask for the publish permissions only when the user wants to publish, but should I do something else with the other session? Like close it first, and reopen it later or I should not worry about?

2) If I have a postToFriends button for example, my pseudocode for making it work would be like this, right?

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

    }

or I should change !FBSession.activeSession.isOpen to something else, because no the user is logged in with read permission only, he never enters the if clause. Can you help me?

Upvotes: 0

Views: 1572

Answers (1)

Ming Li
Ming Li

Reputation: 15662

  1. The two sessions you refer to are actually the same session (it's the "active" session that's statically available after a call to openActiveSession... is called). So you don't need to do anything with the other session.

  2. You should have a look at either the Scrumptious or Hello Facebook sample apps that ship with the SDK. They both give examples on how to post (while asking for publish permissions).

Upvotes: 1

Related Questions