如何检查用户是否已授予对Facebook的访问权限?

时间:2013-05-22 10:46:11

标签: objective-c facebook acaccount acaccountstore

我正在使用ACAccountStore通过 Facebook 从适用于iOS 6或更高版本的iPhone的原生设置进行登录。 登录时我要求获得如下许可:

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

对于共享,我想使用相同的帐户。并且为了共享我使用的代码如下:

if([SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook])

但是,登录后,如果在通过设置共享之前拒绝授权,那么如何再次访问该帐户?

如果我再次执行请求,则会再次提示权限提示。

我只想让帐户访问该Facebook帐户。

任何人都可以回答吗?提前致谢。 (:

2 个答案:

答案 0 :(得分: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访问权限。

答案 1 :(得分:0)

如果通过设置撤销访问权限,我猜您的用户不想再让您的应用访问该帐户。

作为与具有隐私保护的服务进行交互的一般建议(也适用于位置服务等):如果用户授予权限,请求他们并使用它们。否则,请尊重用户的决定,不要再次请求许可。

如果您的应用绝对需要服务才能正常工作,您可以在用户尝试使用该特定功能时提醒用户,并解释您的应用需要该特定权限的原因。

Apple的文档中有几处概述了这种方法。