Sta*_*tas 23 iphone facebook objective-c ios6
虽然,有这样一个问题Facebook错误(7)iOS 6它已经关闭,没有任何答案!在获取用户的Facebook帐户访问权限时,我遇到了错误:
error is: Error Domain=com.apple.accounts Code=7 "The Facebook server could not fulfill this access request: The proxied app is not already installed." UserInfo=0xa260270 {NSLocalizedDescription=The Facebook server could not fulfill this access request: The proxied app is not already installed.}
我正在执行这样的请求:
self.statusLabel.text = @"Waiting for authorization...";
if (self.accountStore == nil) {
self.accountStore = [[ACAccountStore alloc] init];
}
ACAccountType * facebookAccountType = [self.accountStore accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierFacebook];
NSDictionary * dict = @{ACFacebookAppIdKey : FB_APP_ID, ACFacebookAudienceKey : ACFacebookAudienceEveryone};
[self.accountStore requestAccessToAccountsWithType:facebookAccountType options:dict completion:^(BOOL granted, NSError *error) {
__block NSString * statusText = nil;
if (granted) {
statusText = @"Logged in";
NSArray * accounts = [self.accountStore accountsWithAccountType:facebookAccountType];
self.facebookAccount = [accounts lastObject];
NSLog(@"account is: %@", self.facebookAccount);
self.statusLabel.text = statusText;
[self postToFeed];
}
else {
self.statusLabel.text = @"Login failed";
NSLog(@"error is: %@", error);
}
}];
Run Code Online (Sandbox Code Playgroud)
这个错误意味着什么?
Sta*_*tas 16
我已经解决了这个问题!那是因为我没有传递权限数组!虽然ACAccountStore该类声明此参数是可选的,但它不是!

更多应用程序可以启动并要求基本权限(因为它暗示)!

因此,您必须始终传递权限数组.
以下是帐户商店返回的错误代码的说明:
typedef enum ACErrorCode {
ACErrorUnknown = 1,
ACErrorAccountMissingRequiredProperty,
ACErrorAccountAuthenticationFailed,
ACErrorAccountTypeInvalid,
ACErrorAccountAlreadyExists,
ACErrorAccountNotFound,
ACErrorPermissionDenied,
ACErrorAccessInfoInvalid
} ACErrorCode;
Run Code Online (Sandbox Code Playgroud)
(我来了ACErrorPermissionDenied)
Tho*_*ler 11
我们遇到了同样的问题,并仔细看了一下iOS facebook文档广告
https://developers.facebook.com/docs/howtos/ios-6/
我注意到以下段落:
请注意,要使用iOS 6本机身份验证,应用程序需要更改用户请求权限的方式 - 应用程序必须将其读取和写入权限请求分开.
我必须多次读过那篇文章,但它包含了解决方案:
如果要授予写入(发布访问权限),则必须执行多个访问请求.所以现在我们首先要求获得许可'email'以获得读取权限,然后'publish_action'才能发布到时间线.
错误消息不明确,因为"app"可能是您的iOS应用程序?Facebook.app在电话上?Facebook应用?"代理应用程序"是Facebook应用程序,"尚未安装"意味着,它尚未与Facebook用户在线权限相关联.
您的Facebook应用程序第一次连接到用户Facebook帐户时,您必须ACFacebookPermissionsKey在选项词典的键中指定基本信息值.其他Facebook SDK的过去和现在,例如Javascript或PHP库默认提供基本信息作为关键,所以你永远不必.似乎iOS中的本机集成不会这样做,因此,如果用户首次将您的应用程序连接到他们的Facebook帐户而没有提供权限,则会出现此错误.
在您获得访问权限后,即 - 用户在其在线隐私设置中连接到应用程序后,ACFacebookPermissionsKey作为Apple文档,成为可选项.
当你开始尝试使用本机Facebook集成时,这有点令人困惑......
使用原生Facebook的整合,你必须提供以下密钥,其基本信息项之一:email,user_birthday或user_location.
引用Facebook(来源):
要使用iOS 6本机身份验证对话框创建此基本连接,应用程序必须通过询问电子邮件,user_birthday或user_location权限之一来请求访问用户的基本配置文件信息.
| 归档时间: |
|
| 查看次数: |
13332 次 |
| 最近记录: |