2013-06-23 52 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樣例應用程序。他們都舉例說明了如何發佈(同時要求發佈權限)。