如何检查用户是否已授权访问Facebook?

4

我正在使用ACAccountStore从iPhone的本机设置中通过Facebook进行登录,适用于iOS版本6或更高版本。 为了登录,我请求如下权限:

[accountStore requestAccessToAccountsWithType:accountType options:options completion:^(BOOL granted, NSError *error)

我想使用同一个账户来分享。我使用了以下代码进行分享:

if([SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook])

但是,在登录后,如果在通过设置共享之前被拒绝授权,则如何重新获取该帐户的访问权限?

如果我再次请求,则会再次提示权限警报。

我只想访问该Facebook帐户。

有人能回答吗?先感谢了。(:

2个回答

2
    ACAccountStore *accountStore = [[ACAccountStore alloc] init] ;

    ACAccountType *facebookAccountType =  [accountStore accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierFacebook];

    NSLog(@"ACCESS %d",facebookAccountType.accessGranted);
    if(facebookAccountType.accessGranted)
    {
       NSLog (@"You are already granted accees").
    }

通过使用上述代码行,您可以知道用户是否已经授权Facebook访问权限。

完美...太棒了,它对我有效... - iOS dev

0

如果用户通过设置撤销了访问权限,我猜您的用户不想再给您的应用程序访问账户的权限了。

对于与隐私保护相关的服务(如位置服务等),一般建议是:如果用户授权,请请求并使用它们。否则请尊重用户的决定,不要再次请求权限。

如果您的应用程序绝对需要某项服务才能正常工作,您可以在用户尝试使用该特定功能时向其发出警报,并解释为什么您的应用程序需要该特定权限。

这种方法在苹果的文档中有多处概述。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接