[英]Getting error ACErrorPermissionDenied (error code 7) for Facebook when using Social Framework
我使用ACAccountStore
獲取用戶的Facebook帳戶ID和名稱。
當出現警告要求用戶許可(“XYZ想要訪問您的新聞源和個人資料”)並且用戶點擊“不允許”時,我收到錯誤代碼7,即ACErrorPermissionDenied
。
但在那之后,如果我轉到設置並打開我的應用程序的Facebook設置並返回應用程序,警報再次彈出,用戶點擊“確定”,我仍然收到錯誤代碼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;}
您的應用仍在Facebook上的“沙盒模式”嗎? 如果是,則只有管理員和開發人員才能看到它。 如果您在設備上以非管理員身份登錄到Facebook,則可能會收到此錯誤。 禁用沙盒模式為我解決了問題。
這是因為您已經在Facebook中刪除了您的應用,即使我遇到同樣的問題。 如果您嘗試使用iOS本機登錄以外的任何方法登錄,那么它會添加Facebook應用程序(如果它不存在或在Facebook設置中被用戶刪除)但如果您嘗試使用iOS本機登錄進行登錄,則當前不會發生這種情況。 如果你遇到這個問題的ant解決方案,請通知我,這也是他們可以刪除我在iOS facebook設置中列出的應用程序的一種方式,因為如果我刪除然后用戶重試登錄,那么它可以正常工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.