检查我的应用程序的iOS设备facebook权限

检查我的应用程序的iOS设备facebook权限,ios,facebook,facebook-login,Ios,Facebook,Facebook Login,我想检查是否在iOS设置中允许我的应用访问facebook,这样我就可以使用facebook的OpenWithBehavior功能的不同标志进行facebook社交登录。 (一) 如果我的应用在facebook的iOS设置和 (二) 那么,是否可以在“设置”中检查用户是否拒绝了我的应用程序的权限?非常感谢您的帮助和建议。 (我之所以要这样做,是因为在iOS 6设备上,如果用户在iOS facebook设置中拒绝了对我的应用程序的权限,那么facebook登录回退将被中断)。在拨打电话之前,为什么

我想检查是否在iOS设置中允许我的应用访问facebook,这样我就可以使用facebook的OpenWithBehavior功能的不同标志进行facebook社交登录。 (一)

如果我的应用在facebook的iOS设置和 (二)

那么,是否可以在“设置”中检查用户是否拒绝了我的应用程序的权限?非常感谢您的帮助和建议。
(我之所以要这样做,是因为在iOS 6设备上,如果用户在iOS facebook设置中拒绝了对我的应用程序的权限,那么facebook登录回退将被中断)。

在拨打电话之前,为什么不访问
[FBSession activeSession]
?有

@property (readonly, copy) NSArray *permissions;

在调用Facebook SDK登录之前进行检查。NSArray
权限
包含NSString,因此您可以轻松检测会话允许执行的操作。

我解决了这个问题:

[accountStore requestAccessToAccountsWithType:facebookAccountType
                                                  options:options completion:^(BOOL granted, NSError *e) {
                                                      if (granted) {
                                                         NSlog(@"Permission granted");
                                                          // everything is fine i.e, facebook account is created in iOS device settings and permission is given to your app to use facebook information.

                                                          //call facebook login using openWithReadPermissions function of facebook SDK or openWithBehaviour with FBSessionLoginBehaviorWithUseSystemAccountIfPresent

                                                      }
                                                      else
                                                      {
                                                          NSLog(@"Permission     rejected");
                                                          NSLog(@"Facebook error     details: %@",e);

                                                          if ([e code] ==     ACErrorAccountNotFound) {
                                                                  //This means user has not created facebook account in ios settings.

                                                          }
                                                          else if ([e code]== 7 || e==nil){
                                                                  //This means user has denied permission for your app in iOS device facebook settings. So if user tries for social login using facebook then you can call openWithBehaviour facebook SDK function with FBSessionLoginBehaviorWithNoFallbackToWebView to manually give fall facebook fallback.
                                                          }
                                                      }
                                                  }];

首先,“感谢回复”。我的问题不是会话创建和创建会话时请求的facebook权限。我想检查用户是否已禁用我的应用程序访问iOS设备facebook帐户(即设置>facebook>选择应用程序>“关闭”),然后当用户尝试使用facebook登录应用程序时,iOS会强制他/她去更改应用程序设置(设置>facebook>选择应用程序>“打开”)很多人都没有意识到这一点,所以他们可能最终不会使用我的应用程序的facebook登录。因此,在用户在我的应用程序中按下facebook登录之前,我想在设置>facebook>Myapp中检查我的应用程序状态是“开”还是“关”,以便我可以相应地创建会话。首先,使用Facebook SDK时,用户可能也通过Facebook应用程序或Safari登录,您可以检测到用户是否允许应用程序使用
Social.framework
(可从iOS6获得),但我想这可能有点棘手。我更愿意使用活动会话,因为不管怎样,如果它不可用,你就无法真正使用Facebook。非常感谢你的帮助,我也会尝试使用FBSession。
@property (readonly, copy) NSArray *permissions;
@property (readonly) FBSessionState state;
[accountStore requestAccessToAccountsWithType:facebookAccountType
                                                  options:options completion:^(BOOL granted, NSError *e) {
                                                      if (granted) {
                                                         NSlog(@"Permission granted");
                                                          // everything is fine i.e, facebook account is created in iOS device settings and permission is given to your app to use facebook information.

                                                          //call facebook login using openWithReadPermissions function of facebook SDK or openWithBehaviour with FBSessionLoginBehaviorWithUseSystemAccountIfPresent

                                                      }
                                                      else
                                                      {
                                                          NSLog(@"Permission     rejected");
                                                          NSLog(@"Facebook error     details: %@",e);

                                                          if ([e code] ==     ACErrorAccountNotFound) {
                                                                  //This means user has not created facebook account in ios settings.

                                                          }
                                                          else if ([e code]== 7 || e==nil){
                                                                  //This means user has denied permission for your app in iOS device facebook settings. So if user tries for social login using facebook then you can call openWithBehaviour facebook SDK function with FBSessionLoginBehaviorWithNoFallbackToWebView to manually give fall facebook fallback.
                                                          }
                                                      }
                                                  }];