iOS 6中 - Facebook的共享过程失败,出现错误“代理的应用程序尚未安装”(iOS 6

2019-07-31 17:28发布

虽然,有这样的问题, 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.} 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);
    }
}];

这个错误是什么意思?

Answer 1:

我已经解决了这个问题! 这是因为我没有通过权限阵! 虽然ACAccountStore类指出,这个参数是可选的,它不是!

更在应用程序可以启动,并要求基本权限(因为它是隐含的)!

所以,你必须通过一个权限数组。

这里也是由帐户存储返回错误代码的描述:

typedef enum ACErrorCode {
   ACErrorUnknown = 1,
   ACErrorAccountMissingRequiredProperty,
   ACErrorAccountAuthenticationFailed,
   ACErrorAccountTypeInvalid,
   ACErrorAccountAlreadyExists,
   ACErrorAccountNotFound,
   ACErrorPermissionDenied,
   ACErrorAccessInfoInvalid
} ACErrorCode;

(我有ACErrorPermissionDenied这里)



Answer 2:

我们有同样的问题,并在iOS版Facebook的文档广告左看右看后

https://developers.facebook.com/docs/howtos/ios-6/

我注意到以下段落:

注意,使用iOS 6的本地身份验证,应用程序需要改变他们的请求用户权限的方式 - 应用程序必须分开他们的请求读取和写入权限。

我一定是读了一个几个时间,但它包含的解决方案:

你必须做访问多个请求,如果要授予写(发布访问)。 所以,现在我们首先要问的同意“电子邮件”,以获得读取权限,然后“publish_action”到能够发布到时间轴上。



Answer 3:

该错误消息不是因为“应用程序”可能是您的iOS应用清楚了吗? Facebook.app在手机上? Facebook应用程序? 在“代理程序”是Facebook的应用程序,而“尚未安装”的意思,它尚未与Facebook的用户在网上的权限方面有关。

您的Facebook应用程序连接到用户的Facebook帐户的第一次,您必须指定您的基本信息值(S) ACFacebookPermissionsKey选项字典的关键。 通过为关键供应默认的基本信息等的Facebook SDK的过去和现在,如Javascript或PHP库,让你从未有过的。 这似乎在iOS上的原生集成并没有这样做,因此,如果当用户第一次您的应用程序没有提供权限连接到他们的Facebook帐户,你得到这个错误。

您将得到访问,即后-用户连接到应用程序在他们的隐私设置在线后, ACFacebookPermissionsKey确实为苹果公司的文件,成为可选。

这一切都有点混乱,当你开始尝试使用本地Facebook的整合...

使用原生Facebook的整合,你必须提供以下密钥,其基本信息项之一: emailuser_birthday ,或user_location

引述的Facebook( 来源 ):

要创建一个使用iOS 6的本地身份验证对话框这个基本的连接,应用程序必须通过请求的电子邮件,user_birthday,或USER_LOCATION权限一个请求访问用户的基本个人资料信息。



Answer 4:

经历在我的设备之一此错误后(看到正确后,预计iOS的警报视图要求我批准的Facebook访问我的应用程序):

“Facebook的服务器无法满足这个访问请求:无效的应用程序ID”。

我终于发现了问题。

虽然它最初似乎是在FB开发者网站事实证明,我的设备的iOS Facebook帐户不再有与之相关联的有效密码Facebook的应用程序设置有问题 - 这可以开心的时候用户恢复使用iOS备份到新设备。 当我整理,在我的设备设置一切都按预期。

我没有经历过,要求在第一个FB权限访问请求“publish_stream”的任何问题 - 其实,我觉得这里真正的问题是,错误消息是那么的随意,他们不帮助开发者找到我们”的错误根源再经历感谢苹果和Facebook的不团结的!



Answer 5:

一些更多的东西,人们可以比上述建议尝试另一种是在facebook.com上检查您的应用程序设置,在这里 -

https://developers.facebook.com/apps/<*APP_ID*>/summary
  • 确保沙盒模式设置为关

    也,

    “选择您的应用程序与Facebook的集成方式”

    选择- >原生iOS应用

  • 设置软件包ID
  • 您可以为iPhone / iPad应用商店ID的任何临时整数值
  • 设置Facebook登录为Enabled
  • 上市平台是原生iPhone应用程序和/或原生iPad应用程序

保存更改并经过一段时间尝试,因为它可能需要几分钟的时间为Facebook同步更改它的所有服务器。



文章来源: iOS 6 - Facebook sharing procedure fails with error “The proxied app is not already installed”