简体   繁体   English

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

[英]Check iOS device facebook permissions for my app

I want to check whether permission is given to my app for facebook access in iOS settings so that I can use different flag with openWithBehaviour function of facebook for facebook social login. 我想检查是否在iOS设置中为我的应用程序授予了访问Facebook的权限,以便可以将具有Facebook的openWithBehaviour功能的其他标志用于Facebook社交登录。 1) 1)

FBSessionLoginBehaviorWithNoFallbackToWebView i.e 
    [session openWithBehavior:FBSessionLoginBehaviorWithNoFallbackToWebView
                completionHandler:^(FBSession *session,
                                    FBSessionState status,
                                    NSError *error) {
                    // Respond to session state changes,
                    // ex: updating the view
                    [_self sessionStateChanged:session state:status error:error];
                }];

if permission is not given for my app in iOS settings for facebook and 2) 如果未在Facebook和2的iOS设置中为我的应用授予权限)

FBSessionLoginBehaviorUseSystemAccountIfPresent i.e
    [session openWithBehavior:FBSessionLoginBehaviorUseSystemAccountIfPresent
                completionHandler:^(FBSession *session,
                                    FBSessionState status,
                                    NSError *error) {
                    // Respond to session state changes,
                    // ex: updating the view
                    [_self sessionStateChanged:session state:status error:error];
                }]; 

So is it possible to check whether my app is denied permission by the user in settings? 那么可以检查用户的设置是否拒绝我的应用程序的权限吗? Any help, suggestion is deeply appreciated. 任何帮助,建议深表感谢。 (I want this because on iOS 6 devices if user has denied permission for my app in iOS facebook settings then facebook login fall back is interrupted). (我想要这样做是因为在iOS 6设备上,如果用户在iOS Facebook设置中拒绝了我的应用程序的权限,那么Facebook登录回退将被中断)。

Why don't you access [FBSession activeSession] before making the call? 为什么在拨打电话之前不访问[FBSession activeSession] There is

@property (readonly, copy) NSArray *permissions;

and

@property (readonly) FBSessionState state;

to do checks before making any call for log in on the Facebook SDK. 在调用任何登录Facebook SDK之前进行检查。 NSArray permissions contains NSStrings so you can easily detect what your session is allowed to do. NSArray permissions包含NSString,因此您可以轻松地检测允许会话执行的操作。

I solved this: 我解决了这个问题:

[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.
                                                          }
                                                      }
                                                  }];

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 iOS Facebook SDK - 检查权限 - iOS Facebook SDK - Check Permissions iOS应用不要求iOS7设备上的权限 - iOS app not asking for permissions on iOS7 device Facebook iOS本机应用程序中的“权限”对话框 - Permissions dialog in Facebook iOS native app iOS应用和Facebook“ user_photos”权限 - iOS app and Facebook “user_photos” permissions 在 iOS 设备上运行时,如何允许我的 Kivy 应用程序访问文本文件? - How can I allow permissions for my Kivy app to access text files when running on an iOS device? 接受权限,空白屏幕(iOS)后,Facebook无法返回我的应用程序 - Facebook does not return to my app after accepting permissions, blank screen (iOS) ios 6-无法在设备上运行的应用程序中发布到Facebook - ios 6 - Post to Facebook in app not working on device 获得权限后的Facebook登录让Safari空白页打开,而不是重定向到iOS 10和iOS 11中的我的应用程序 - Facebook login after get permissions let Safari blank page open instead of redirect to my app in iOS 10 and iOS 11 iOS Facebook SDK在撤消应用程序权限后崩溃应用程序 - iOS Facebook SDK crashes app after revoking app permissions 如何在ios上点击Facebook上的新闻提要时在设备中打开我的应用程序 - how can open my app in device while click on news-feed on facebook in ios
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM