我使用ACAccountStore获取用户的Facebook帐户ID和名称。
当出现警报询问用户的权限(“XYZ希望访问您的新闻提要和配置文件”)并且用户点击“不允许”时,我会得到错误代码7,即ACErrorPermissionDenied。
但在那之后,如果我进入设置,打开我的应用程序的Facebook设置,然后返回应用程序,警报再次弹出,用户点击“OK”,我仍然得到错误代码7 (ACErrorPermissionDenied)。所以它是在设置中启用的,我在应用程序中点击了“OK”,但是它仍然给了我这个错误。
如果我第一次允许访问,并且在该开关打开或关闭设置之后,它会给我正确的错误或成功。只有当用户第一次点击“不允许”时,才会出现此问题。如果他不允许它在应用程序要求时,那么他将不能允许FB访问我的应用程序。
我使用以下代码在iOS 6.0和6.0.1上测试了这一点:
NSMutableArray *acAccountArray = [[NSMutableArray alloc] init];
ACAccountStore *accountStore = [[ACAccountStore alloc] init];
ACAccountType *accountType =
[accountStore accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierFacebook];
[accountStore
requestAccessToAccountsWithType:accountType
options:[self getOptionDictionary:ACAccountTypeIdentifierFacebook permission:[[NSArray alloc]initWithObjects:@"read_stream",@"user_about_me",@"email", nil]]
completion:^(BOOL granted, NSError *error) {
if(granted) {
// Doing what I want
} else {
NSLog(@"Error: %@", error);
}
}];
-(NSDictionary *)getOptionDictionary:(NSString * const)accountTypeIdentifier
permission:(NSArray*)permissionArray {
NSDictionary *options = nil;
if (accountTypeIdentifier == ACAccountTypeIdentifierFacebook) {
options = @{
@"ACFacebookAppIdKey" : @"dhksadhakjdhkshd",
@"ACFacebookPermissionsKey" : permissionArray,
@"ACFacebookAudienceKey" : ACFacebookAudienceFriends};
}
return options;}发布于 2013-08-14 12:42:08
你的应用程序在Facebook上还处于“沙箱模式”吗?如果是,它将只对管理员和开发人员可见。如果您在设备上与应用程序的非管理员登录到Facebook,您可能会收到此错误。禁用沙箱模式为我解决了问题。
发布于 2013-12-16 11:10:45
这是因为你在facebook上删除了你的应用程序,甚至我也面临着同样的问题。如果您尝试使用iOS本机登录以外的任何方法登录,那么它会添加facebook应用程序,如果它不在facebook设置中或被用户删除,但如果您尝试使用iOS本机登录登录,则当前不存在这种情况。请告诉我,如果你遇到了这个问题的蚂蚁解决方案,也是他们的一种方式,我可以删除我的应用程序列在iOS facebook设置在这种情况下,因为如果我删除,然后用户重试登录,然后它是正确的工作。
https://stackoverflow.com/questions/14317538
复制相似问题