facebook登录请求登录审查权限

Posted

技术标签:

【中文标题】facebook登录请求登录审查权限【英文标题】:facebook login ask for Login Review Permission 【发布时间】:2015-06-09 07:28:03 【问题描述】:

我正在使用 facebook sdk 在 facebook 墙上分享状态。

但我在授予权限时收到消息。

“提交登录审核以下某些权限尚未被 facebook 在 ios 中使用提交审核或了解更多”

这是我的代码。

  - (IBAction)PostStatus:(id)sender
  
    [self postWithText:self.txtField.text ImageName:nil URL:@"http://developers.facebook.com/ios" Caption:nil Name:nil andDescription:nil];

  


-(void) postWithText: (NSString*) message
       ImageName: (NSString*) image
             URL: (NSString*) url
         Caption: (NSString*) caption
            Name: (NSString*) name
  andDescription: (NSString*) description
  

NSMutableDictionary* params = [[NSMutableDictionary alloc] initWithObjectsAndKeys:
                               url, @"link",
                               name, @"name",
                               caption, @"caption",
                               description, @"description",
                               message, @"message",
                               UIImagePNGRepresentation([UIImage imageNamed: image]), @"picture",
                               nil];

if ([FBSession.activeSession.permissions indexOfObject:@"publish_actions"] == NSNotFound)

    // No permissions found in session, ask for it
    [FBSession.activeSession requestNewPublishPermissions: [NSArray arrayWithObject:@"publish_actions"]
                                          defaultAudience: FBSessionDefaultAudienceFriends
                                        completionHandler: ^(FBSession *session, NSError *error)
     
         if (!error)
         
             // If permissions granted and not already posting then publish the story

                 [self postToWall: params];

         
     ];

else

    // If permissions present and not already posting then publish the story
        [self postToWall: params];



 -(void) postToWall: (NSMutableDictionary*) params
 
  // m_postingInProgress = YES; //for not allowing multiple hits

[FBRequestConnection startWithGraphpath:@"me/feed"
                             parameters:params
                             HTTPMethod:@"POST"
                      completionHandler:^(FBRequestConnection *connection,
                                          id result,
                                          NSError *error)
 
     if (error)
     
         //showing an alert for failure
         UIAlertView *alertView = [[UIAlertView alloc]
                                   initWithTitle:@"Post Failed"
                                   message:error.localizedDescription
                                   delegate:nil
                                   cancelButtonTitle:@"OK"
                                   otherButtonTitles:nil];
         [alertView show];
     

 ];

【问题讨论】:

可能重复.. ***.com/q/23722676/3400991 【参考方案1】:

最好阅读 facebook 开发者文档。 Facebook 明确提及以下内容:

" 如果您的应用要求的不仅仅是 public_profile、email 和 user_friends,则需要经过 Facebook 审核,然后您的应用才能被应用开发者以外的人使用。 审核您的应用的时间通常约为 7 个工作日。如下所述,一些特别敏感的权限可能需要长达 14 个工作日。 "

所以在您的问题中,最好只分享文本并检查它是否有效。

【讨论】:

【参考方案2】:

当您将应用注册到 facebook 时。 Facebook 只提供三个权限,这些权限默认是批准的

    email 提供对个人主要电子邮件地址的访问。默认情况下已批准此权限。

    public_profile 提供对个人基本信息的访问,包括名字、姓氏、头像、性别和年龄范围。默认情况下已批准此权限。

    user_friends 提供对也使用您的应用程序的人的朋友列表的访问权限。默认情况下已批准此权限。

如果您想使用除它们之外的更多功能,则需要将您的应用提交到 facebook 以使用其他功能

如果想要分享照片,那么您必须提交您的应用以获得 publish_action 权限 Facebook 检查您如何使用分享或在您的应用中发布,您还需要上传屏幕截图并提交显示您正在使用 Facebook 分享.

但您可以仅使用您在 developer.facebook.com 上创建应用程序时使用的电子邮件在 Facebook 上分享或发帖 或者您也可以创建测试用户进行共享。 但是,如果您希望每个人都可以通过 facebook 分享或发布,您需要获得 facebook 的许可。

【讨论】:

在提交审核之前,您将如何在应用程序上“测试”这些权限结果?是否没有允许某些开发者帐户权限的测试模式?【参考方案3】:

这是我在 Facebook 上分享帖子的代码。

if([SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook]) 

     SLComposeViewController *controller = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeFacebook];

                [controller setInitialText:@"your message"];
                [controller addImage:imgSelect.image];//set your image here
                NSLog(@"controller");
                [self presentViewController:controller animated:YES completion:Nil];

else
     UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"No Facebook Account" message:@"There are no Facebook accounts configured. You can add or create a Facebook account in Settings." delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"Settings", nil];
                [alert show];


- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex

    if (buttonIndex == 1)
    
        [[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]];
    

【讨论】:

以上是关于facebook登录请求登录审查权限的主要内容,如果未能解决你的问题,请参考以下文章

Facebook 请求配置文件 Graph API 无法在 iOS 7 本机 facebook 上未登录

Cordova / Phonegap 应用程序 - 更改 Facebook 帐户

我必须在 4 月底之前使用此登录代码发送审查我的 Facebook 应用程序吗?

使用 Parse 登录 Facebook 不起作用

无法使用 quickblox(iOS)登录 facebook

Facebook API V3 - 为测试用户创建 Facebook 页面