成功提交到App Center的“Facebook登录集成”有哪些要求?

时间:2013-06-24 22:09:58

标签: android ios facebook facebook-login facebook-app-center

我很难向App Center提交Android / iOS应用程序,但是由于以下原因我不断遭到拒绝:

  

一般反馈:

     
      
  • 您的Android应用似乎没有Facebook登录集成。请在开发者应用程序中实施Facebook登录或删除此集成作为列出的平台。点击此处了解更多详情
  •   
  • 您的iOS应用似乎没有Facebook登录集成。请在开发者应用程序中实施Facebook登录或删除此集成作为列出的平台。点击此处了解更多详情
  •   

Facebook登录按钮位于“设置”对话框中,其中还包含正常的电子邮件/密码登录。

不幸的是,审核小组没有说明为什么他们认为缺少Facebook登录集成。

那么,对于我可能缺少的Login实现是否有任何特定要求?

4 个答案:

答案 0 :(得分:0)

查看Facebook developers page - 他们概述了如何开始将Facebook集成到Android应用here中的说明,谈论Facebook身份验证here,并提供Facebook登录教程here。也许您的问题不符合概述的要求,因此您有登录,但没有正确的格式。

答案 1 :(得分:0)

我不使用登录按钮。相反,在appdelegate中有一个make函数来获取FBSession。

- (BOOL)openSessionWithAllowLoginUI:(BOOL)allowLoginUI andCompletionBlock:(void (^)(void)) action{
BOOL theResult = [FBSession openActiveSessionWithPublishPermissions:[NSArray arrayWithObject:@"publish_actions"] defaultAudience:FBSessionDefaultAudienceFriends allowLoginUI:allowLoginUI
                                               completionHandler:^(FBSession *session,
                                                                   FBSessionState state,
                                                                   NSError *error) {
                                                   if (state == FBSessionStateOpen) {
                                                       action();
                                                   }
                                                   //action();
                                                   [self sessionStateChanged:session
                                                                       state:state
                                                                       error:error];
                                               }];
return theResult;
}

然后,当我想发布时,我这样做:

    if (!FBSession.activeSession.isOpen) {
    [theAppDelegate openSessionWithAllowLoginUI:YES andCompletionBlock:^{
    //Your Code            
        [self postToWall];

    }];
}
else {
        [self postToWall];
 }

- (void) performPublishAction:(void (^)(void)) action {
// we defer request for permission to post to the moment of post, then we check for the permission
if ([FBSession.activeSession.permissions indexOfObject:@"publish_actions"] == NSNotFound) {
    [FBSession.activeSession requestNewPublishPermissions:[NSArray arrayWithObject:@"publish_actions"]
                                               defaultAudience:FBSessionDefaultAudienceFriends
                                             completionHandler:^(FBSession *session, NSError *error) {
                                                 if (!error) {
                                                     action();
                                                 }
                                             }];
      } else {
          action();
     }
}

   -(void)postToWall {
[self performPublishAction:^{
    NSMutableDictionary* params1 = [NSMutableDictionary dictionaryWithObjectsAndKeys:
                                    kFacebookAppID, @"api_key",
                                    kLink,          @"link",
                                    photo,          @"picture",
                                    kAppName,       @"name",
                                    kDescription,   @"description",
                                    nil];

    FBRequestConnection *connection = [[FBRequestConnection alloc] init];
    FBRequest *theRequest = [[FBRequest alloc] initWithSession:[FBSession activeSession] graphPath:@"me/photos" parameters:params1 HTTPMethod:@"POST"];
    [connection addRequest:theRequest completionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
        NSLog(@"Result from Facebook request: %@",result);
        if (!error) {
            [[NSNotificationCenter defaultCenter] postNotificationName:@"UploadComplete" object:nil];
        }
        else
        {

        }
    }];
    [connection start];

}]; 
}

也添加这些功能。

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
// attempt to extract a token from the url
return [FBSession.activeSession handleOpenURL:url];
}

/*
 * Callback for session changes.
 */
- (void)sessionStateChanged:(FBSession *)session state:(FBSessionState) state error:(NSError *)error
{
switch (state) {
    case FBSessionStateOpen:
        if (!error) {
            // We have a valid session
            NSLog(@"User session found");
        }
        break;
    case FBSessionStateClosed:
    case FBSessionStateClosedLoginFailed:
        [FBSession.activeSession closeAndClearTokenInformation];
        break;
    default:
        break;
}

[[NSNotificationCenter defaultCenter]
 postNotificationName:FBSessionStateChangedNotification
 object:session];

if (error) {
    UIAlertView *alertView = [[UIAlertView alloc]
                              initWithTitle:@"Error"
                              message:error.localizedDescription
                              delegate:nil
                              cancelButtonTitle:@"OK"
                              otherButtonTitles:nil];
    [alertView show];
}
}

希望这有帮助!

答案 2 :(得分:0)

好的,有助于通过审核的一件事是在设置屏幕的登录按钮上添加了Facebook徽标。

答案 3 :(得分:-2)

Facebook有自己的开发人员指南,您可以在此处找到:https://developers.facebook.com/docs/appcenter/guidelines/。几乎在文档的最后,你有一节calle“常见提交错误”。检查它,按照链接,也许你可以在那里找到问题所在。

希望这有帮助!