iOS 6 – Facebook共享程序失败,错误“代理应用程序尚未安装”
虽然,有这样一个问题Facebook错误(7)iOS 6已经closures,没有任何答案! 虽然获取用户的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.}
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); } }];
这个错误是什么意思?
我已经解决了这个问题! 这是因为我不通过权限数组! 虽然ACAccountStore
类声明这个参数是可选的,但它不是!
更多的应用程序可能会启动并要求基本的权限(因为它是隐含的)!
所以,你必须总是传递一个权限数组。
以下是帐户商店返回的错误代码的说明:
typedef enum ACErrorCode { ACErrorUnknown = 1, ACErrorAccountMissingRequiredProperty, ACErrorAccountAuthenticationFailed, ACErrorAccountTypeInvalid, ACErrorAccountAlreadyExists, ACErrorAccountNotFound, ACErrorPermissionDenied, ACErrorAccessInfoInvalid } ACErrorCode;
(我在这里有ACErrorPermissionDenied
)
我们有同样的问题,并仔细看看iOS的Facebook的文档广告
https://developers.facebook.com/docs/howtos/ios-6/
我注意到以下段落:
请注意,要使用iOS 6本地身份validation,应用程序需要更改用户向用户请求权限的方式 – 应用程序必须将读取和写入权限的请求分开。
我必须多读几遍,但它包含的解决scheme:
如果要授予写入(发布访问权),则必须执行多个访问请求。 所以现在我们首先要求获得权限“email”来获取读取权限,然后“publish_action”能够发布到时间线上。
错误信息不清楚,因为“应用程序”可能是你的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本地身份validation对话框创build此基本连接,应用程序必须通过请求电子邮件,user_birthday或user_location权限之一来请求访问用户的基本个人资料信息。
在我的一个设备上遇到这个错误之后(看到正确的,预期的iOS警报视图要求我批准Facebook访问我的应用程序):
Facebook服务器无法满足这个访问请求:无效的应用程序ID。
我终于find了问题。
尽pipe最初在FB开发者网站上的Facebook应用程序设置似乎有问题,但事实certificate,我的设备的iOS Facebook帐户不再具有与其关联的有效密码 – 当用户将iOS备份恢复到新设备时, 。 一旦我在我的设备设置中sorting,一切都按预期工作。
我在第一个FB权限访问请求中没有遇到任何请求“publish_stream”的问题 – 我其实认为真正的问题在于错误信息是如此随意,以至于他们不能帮助开发人员find错误的根源,再次感谢苹果和Facebook的不统一!
除了上述build议之外,还有其他一些可以尝试的方法是在facebook.com上检查您的应用程序设置 –
https://developers.facebook.com/apps/<*APP_ID*>/summary
-
确保SandBox模式设置为关
也,
在“select您的应用如何与Facebook整合”
select – >本机iOS应用程序
- 设置您的捆绑ID
- 您可以为iPhone / iPadapp storeID设置任何临时整数值
- 将Facebooklogin设置为已启用
- 列出的平台是本机iPhone应用程序和/或本机iPad应用程序
保存更改并尝试一段时间后,因为facebook可能需要几分钟才能将更改同步到所有服务器。
- 如何获得朋友的名单,而无需打开FBFriendPickerViewController iOS
- FBSDKAppInvite成功,但不能在fbaccount中发送通知
- 使用SLRequest(无对话框)在iOS 6上传video到Facebook的示例
- 通过PHP SDKvalidationFacebook API访问令牌和用户ID?
- FBFriendPickerViewController在iOS上显示和清空表格。 放置选取器运行良好
- 如何获得Facebook页面的更大的个人资料图片
- 共享应用程序时产生的“FBAppCall无效使用”错误 – Facebook应用程序ID未注册为URLscheme
- Facebook all_mutual_friends无效
- iOS Facebookgraphics请求多个图片大小