【问题标题】:How to check if user has granted the access to Facebook or not?如何检查用户是否已授予对 Facebook 的访问权限?
【发布时间】:2013-05-17 09:18:06
【问题描述】:

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

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

为了分享,我想使用同一个帐户。为了分享,我使用了如下代码:

if([SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook])

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

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

我只希望该帐户访问该 Facebook 帐户。

谁能回答?提前致谢。 (:

【问题讨论】:

    标签: objective-c facebook acaccount acaccountstore


    【解决方案1】:
        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 访问权限。

    【讨论】:

    • 完美...太棒了,它对我有用... Anna nuvvu keka
    【解决方案2】:

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

    作为与具有隐私保护的服务交互的一般建议(也适用于定位服务等):请求它们并在用户授予许可的情况下使用它们。否则尊重用户的决定,不再请求许可。

    如果您的应用绝对需要一项服务才能正常运行,您可以在用户尝试使用该特定功能时提醒用户,并解释您的应用为何需要该特定权限。

    Apple 文档中的多个地方都概述了这种方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多