Iphone Facebook 3.x SDK通知未触发?
我想知道是否有人知道为什么在我打开新的FBSession会话时,FBSessionDidSetActiveSessionNotification、FBSessionDidUnsetActiveSessionNotification、FBSessiondDBecomeOpenActiveSessionNotification或FBSessiondDBecomeClosedActiveSessionNotification从未被触发 我检测fbsessionIDBecomeOpenActiveSessionNotification&fbsessionIDSetActiveSessionNotification的唯一方法是调用[FBSession setActiveSession:];明确地说 基本上,我得到了这样的东西:Iphone Facebook 3.x SDK通知未触发?,iphone,ios,facebook,Iphone,Ios,Facebook,我想知道是否有人知道为什么在我打开新的FBSession会话时,FBSessionDidSetActiveSessionNotification、FBSessionDidUnsetActiveSessionNotification、FBSessiondDBecomeOpenActiveSessionNotification或FBSessiondDBecomeClosedActiveSessionNotification从未被触发 我检测fbsessionIDBecomeOpenActiveSes
_session = [[FBSession alloc] initWithAppID: FACEBOOK_AppId
permissions: _facebookPermissions
defaultAudience: FBSessionDefaultAudienceOnlyMe
urlSchemeSuffix: nil
tokenCacheStrategy: nil];
[_session openWithCompletionHandler:^(FBSession *session,
FBSessionState status,
NSError *error) {
[FBSession setActiveSession: _session];
// ...
}];
我必须调用[FBSession setActiveSession:];,这正常吗 试试这个:
+ (BOOL)openActiveSessionWithPermissions:(NSArray*)permissions
allowLoginUI:(BOOL)allowLoginUI
completionHandler:(FBSessionStateHandler)handler;
使用
不过,这实际上只是一个帮助函数,用于执行与您已经在执行的操作类似的操作。如果你从git回购中获取源代码,你可以看到FBSession.m中发生了什么。是的,这也行。。。但它已经被弃用了。所以我现在可能不应该用它。我不认为是。。请参见此处,查看Facebook SDK 3.1的FBSession.h。这是该方法的声明;它被Facebook弃用(参见_属性_((弃用)));在3.1中,您必须分别请求读取权限和写入权限。使用openActiveSessionWithReadPermissions进行登录。稍后当您需要发布/写入时,请使用reauthorizeWithPublishPermissions:defaultAudience:completionHandler。查看:Facebook建议使用openActiveSessionWithReadPermissions:allowLoginUI:completionHandler:或openActiveSessionWithAllowLoginUI查看文档
+ (BOOL)openActiveSessionWithReadPermissions:(NSArray*)readPermissions
allowLoginUI:(BOOL)allowLoginUI
completionHandler:(FBSessionStateHandler)handler;