2012-09-26 140 views
2

剛剛升級到Facebook iOS SDK 3.1並且已經遇到問題。Facebook IOS SDK 3.1 - reauthorizeWithPublishPermissions?

我的應用程序無法找到Facebook的方法reauthorizeWithPublishPermissions,也沒有得到一個線索靜態FBSessionDefaultAudienceFriends定義是什麼!

其他人看到這些問題?不能相信3.1 SDK會有這些基本的錯誤,所以我現在就責怪我的愚蠢!

爲了完整起見,這裏是我的代碼:

[FBSession reauthorizeWithPublishPermissions:[NSArray arrayWithObjects:@"publish_stream", @"publish_actions",nil] 
    defaultAudience:FBSessionDefaultAudienceFriends 
    completionHandler:^(FBSession *session, NSError *error) { 

     // Do something... 

}]; 

感謝。

+0

不得不要求檢查你是否正確鏈接了新的SDK(清理過的項目等)。他們都在FBSession.h中! –

+0

感謝詹姆斯,他是'腦海中的時刻!正如Zotter所說,這是一種實例方法。 –

回答

1

reauthorizeWithPublishPermissions:是一個實例方法

[FBSession.activeSession reauthorizeWithPublishPermissions:permissions defaultAudience:FBSessionDefaultAudienceFriends completionHandler: 
    ^(FBSession *session, 
     NSError *error) 
    { 
     ... 
    }]; 
2
/*! No audience needed; this value is useful for cases where data will only be read from Facebook */ 

    FBSessionDefaultAudienceNone    = 0, 
    /*! Indicates that only the user is able to see posts made by the application */ 
    FBSessionDefaultAudienceOnlyMe    = 10, 
    /*! Indicates that the user's friends are able to see posts made by the application */ 
    FBSessionDefaultAudienceFriends    = 20, 
    /*! Indicates that all Facebook users are able to see posts made by the application */ 
    FBSessionDefaultAudienceEveryone   = 30, 
0

我有這個問題。我使用的是舊版本的Cocoapods,它沒有正確地將源代碼從3.0升級到3.1。如果您使用的是Cocoapods,請升級到0.14.0並重試。如果沒有,請仔細檢查以確保您掌握了最新的Facebook SDK - 如果您在FBSession.h中看不到這些值,則可能是SDK的舊版本。

3

@Zotter,答案是貶值。現在(使用最新的Facebook iOS SDK,我猜v.3.19),您必須使用- (void)requestNewReadPermissions:(NSArray *)readPermissions completionHandler:(FBSessionRequestPermissionResultHandler)handler;方法來授權具有發佈權限的應用。

[FBSession.activeSession requestNewPublishPermissions:permissions 
defaultAudience:FBSessionDefaultAudienceFriends 
completionHandler:^(FBSession *session, NSError *error) { 
    if(!error) { 

    } 
}];