Objective c Facebook会话状态始终不是FBSessionStateCreatedTokenLoaded
我使用最新的Facebook SDK(3.1.1) 我在我的Objective c Facebook会话状态始终不是FBSessionStateCreatedTokenLoaded,objective-c,facebook,Objective C,Facebook,我使用最新的Facebook SDK(3.1.1) 我在我的AppDelegate中编写了一个函数,用于检查当前会话并根据状态创建或打开会话 第二个条件总是返回NO,然后转到显示登录屏幕 我不明白怎么回事 AppDelegate方法: if (facebook.isOpen == NO) { facebook = [[FBSession alloc] initWithPermissions:permission]; if (facebook.state == FBSessionS
AppDelegate
中编写了一个函数,用于检查当前会话并根据状态创建或打开会话
第二个条件总是返回NO
,然后转到显示登录屏幕
我不明白怎么回事
AppDelegate方法:
if (facebook.isOpen == NO)
{
facebook = [[FBSession alloc] initWithPermissions:permission];
if (facebook.state == FBSessionStateCreatedTokenLoaded)
{
[facebook openWithCompletionHandler:^(FBSession *session,FBSessionState status,NSError *error)
{
// load user details
}];
}
else
{
// show login screen
}
}
FbSession类中存在属性访问令牌 使用该字符串检查登录状态 如果该字符串中的值为null,则表示会话已过期,但如果该字符串中的值为null,则表示您仍在登录应用程序,并且可以执行任何您想要的操作 问候
Abhishek Goyal如果会话状态等于FBSessionStateCreatedTokenLoaded,则表示存在缓存的accessToken,则调用open*将导致打开会话,而无需UX或应用程序切换
-(BOOL)validFBSessionExists{
if (FBSession.activeSession.isOpen){
NSLog(@"Facebook accessToken:%@",FBSession.activeSession.accessTokenData.accessToken);
return YES;
}
else if (FBSession.activeSession.state == FBSessionStateCreatedTokenLoaded)
{
// Cached token exist, Session needs to be re-opened
[FBSession.activeSession openWithBehavior:FBSessionLoginBehaviorUseSystemAccountIfPresent completionHandler:nil];
return YES;
}
return NO;
}
facebook.accessToken也总是为零。你能分享你如何获得facebook访问令牌的代码吗?我发现了问题-我尝试使用不同的权限初始化会话两次。谢谢