2012-12-18 106 views
4

我目前正試圖實現Facebook登錄和註冊流程到我們的應用程序。 但有一點問題。我從我們的Web-API獲得的權限,如果我試圖把它們傳遞給了Facebook SDK的openActiveSessionWithReadPermissions方法的誤差用下面的消息出現:發佈或管理權限不被允許請求讀取權限FACEBOOK SDK

> Terminating app due to uncaught exception 
> 'com.facebook.sdk:InvalidOperationException', reason: 'FBSession: 
> Publish or manage permissions are not permited to to be requested with 
> read permissions. 

如此看來,我不能通發佈或使用此方法管理權限。 我現在的問題是:爲什麼我不能將這個參數傳遞給openActiveSession,我應該怎麼做?

回答

5

如果你要開比ReadPermissions其他權限的活動會話,你可以嘗試

openActiveSessionWithPublishPermissions:(NSArray *)permissions 
         defaultAudience:(FBSessionDefaultAudience) 
          allowLoginUI:(BOOL)allowLoginUI 
         completionHandler:^(FBSession *session, FBSessionState status, NSError *error)handler 

方法。或者,如果你要重新授權的其他權限已經打開的會話,你可以使用

- (void)reauthorizeWithReadPermissions:(NSArray*)readPermissions 
       completionHandler:(FBSessionReauthorizeResultHandler)handler; 

- (void)reauthorizeWithPublishPermissions:(NSArray*)writePermissions 
        defaultAudience:(FBSessionDefaultAudience)defaultAudience 
        completionHandler:(FBSessionReauthorizeResultHandler)handler; 

方法。嘗試通過FBSession.h類。

+0

因此,如果我想打開活動會話與讀取和發佈權限,我必須調用其中一個openActiveSession方法,然後重新授權它? –

+0

如果您有活動的會話,您可以使用'read'或'publish_action'權限重新授權它。如果您打開活動會話,則建議使用讀取權限打開它。之後,您可以使用其他權限重新授權。 – Zen

+0

請參閱此鏈接從3.1升級到3.2 https://developers.facebook.com/docs/tutorial/iossdk/upgrading-from-3.1-to-3.2/ – Ramz