-->

iPhone应用程序排斥17.2:应用要求用户与他们的Facebook账户登录(iPhone app

2019-09-20 11:57发布

我跟着我的原生iOS应用的登录说明这里https://developers.facebook.com/docs/mobile/ios/build/

我必须在应用程序中的AppDelegate一切的Facebook中:didFinishLaunchingWithOptions:

facebook = [[Facebook alloc] initWithAppId:@"xyzabc" andDelegate:self];
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];

if ([defaults objectForKey:@"FBAccessTokenKey"] 
    && [defaults objectForKey:@"FBExpirationDateKey"]) {
    facebook.accessToken = [defaults objectForKey:@"FBAccessTokenKey"];
    facebook.expirationDate = [defaults objectForKey:@"FBExpirationDateKey"];
}


if (![facebook isSessionValid]) {
    NSArray *permissions = [[NSArray alloc] initWithObjects:
                            @"publish_stream", 
                            nil];
    [facebook authorize:permissions];

}

问题是,我的应用程序打开,我需要先登录Facebook的人使用我的应用程序的功能。 苹果拒绝了我说Facebook的功能应该是可选的,而不是强迫(下拒绝理由17.2列出)。

我只是想知道如果我能保持最一切都在应用程序的委托,但放

    if (![facebook isSessionValid]) {
        NSArray *permissions = [[NSArray alloc] initWithObjects:
                                @"publish_stream", 
                                nil];
        [facebook authorize:permissions];
}

其他地方(比如当按下登录Facebook的按钮)。 如果是这种情况,应Facebook的文档进行更新,因此没有人被拒绝? 或者,也许我错过了什么,我可以保持在应用程序的委托,而是叫别的东西,使登录可选?

在此先感谢您的帮助!

Answer 1:

我所做的解决,这是我感动了所有的Facebook代码-applicationDidFinishLaunching到一个自定义的方法-createFBInstance,我从每当一个UIButton按下所以现在当点击一个按钮,该应用程序的用户只要登录Facebook的一个UIViewController称为伟大工程! 只要确保你只用从FBSessionDelegate方法您的委托里面我从来没有让任何其他类的工作。 我在里面的应用程序Web视图还开了登录网页,所以它看起来更漂亮。



Answer 2:

当然,将被拒绝。 17.2指出,要求用户共享个人信息的应用程序,如电子邮件地址和出生日期,以功能将被拒绝。 有没有办法让用户使用你的应用程序,直到他们有Facebook帐户。 相反,我建议你把它像可选与Facebook /谷歌登录,让你的应用程序自己的注册过程。



文章来源: iPhone app rejection 17.2: app requires users sign in with their Facebook accounts