如何在FBWebDialogs中打开会话?

时间:2013-12-25 03:37:50

标签: ios xcode facebook facebook-sdk-3.0

我使用facebook sdk 3.11并使用FBWebDialogs来共享链接和图像。 当我创建行动表时:

-(void) showActionSheet:(id)sender{
    NSLog(@"Show action Sheset");
    UIActionSheet *shareAction = [[UIActionSheet alloc] initWithTitle:@"xx zz yy" delegate:self cancelButtonTitle:nil destructiveButtonTitle:nil otherButtonTitles: nil];
    NSString * accTitle ;
    if ([[FBSession activeSession]isOpen]) {
        //        accTitle =@"Logged as %@",[self fetchUserData];

        accTitle =[[NSString alloc]initWithFormat:@"Logged as :" ];
        [shareAction addButtonWithTitle:@"Logout"];
        [shareAction addButtonWithTitle:@"Share"];
    }else{
        accTitle =@"Not login";
        [shareAction addButtonWithTitle:@"Login"];

    }
    [shareAction addButtonWithTitle:@"CanCel"];
    [shareAction setCancelButtonIndex:shareAction.numberOfButtons-1];
    [shareAction setTitle:accTitle];
    //    [shareAction setBounds:CGRectMake(0, 0, 400, 400)];
    [shareAction showInView:self.view];
}

[[FBSession activeSession] isOpen]它总是返回no,虽然我已登录并分享到facebook。 我如何检查FBWebdialg的会话使用?

1 个答案:

答案 0 :(得分:0)

如果您当前登录到FB而不是FBSession返回“no”,则会出现令牌状态的问题,您应该调用openActiveSessionWithAllowLoginUI(FB方法检查它返回的状态)。

if ([[FBSession activeSession]state])

此外,您可能需要查看this以获取有关使用Facebook SDK进行令牌管理的更多详细信息。

值得注意的是,如果要仅共享内容,Social.framework for iOS同样有用。