[英]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.