FBSDKLoginManager logInWithReadPermissions?

Oma*_*arj 19 facebook objective-c ios facebook-ios-sdk facebook-sdk-4.0

我正在使用FBSDKLoginButton允许用户登录使用Facebook和使用 FBSDKLoginButton.readPermissions = @[@"public_profile",@"email",@"user_likes",@"email",@"user_birthday"];

要求权限,但我需要一个权限,这是我应该使用的publish_actions FBSDKLoginManager

 logInWithReadPermissions:@[@"public_profile",@"user_likes",@"user_birthday"] 
logInWithPublishPermissions:@[@"publish_actions"]
Run Code Online (Sandbox Code Playgroud)

但这由于某种原因影响了我的许可"我的一些许可是缺少检查图像

码:-

FBSDKLoginManager *login = [[FBSDKLoginManager alloc] init];
                [login logInWithPublishPermissions:@[@"publish_actions"] handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) {
                    if (error) {
                        // Process error
                    } else if (result.isCancelled) {
                        // Handle cancellations
                    } else {
                        // If you ask for multiple permissions at once, you
                        // should check if specific permissions missing
                        if ([result.grantedPermissions containsObject:@"publish_actions"]) {
                            // Do work
                        }
                    }
                }];

[login logInWithReadPermissions:@[@"public_profile",@"",@"user_likes",@"user_birthday"] handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) {
    if (error) {
        // Process error
    } else if (result.isCancelled) {
        // Handle cancellations
    } else {
        // If you ask for multiple permissions at once, you
        // should check if specific permissions missing
        if ([result.grantedPermissions containsObject:@"email"]) {
            // Do work
        }
    }
}];
Run Code Online (Sandbox Code Playgroud)

结果:-

**将用户重定向到权限视图需要很长时间吗?并非我的所有许可都显示给用户**

在此输入图像描述

注意: - 我知道这个警告意味着我需要提交我的应用程序进行审核,但这不是我现在要问的问题.

更新

当我尝试"Dheeraj Singh"解决方案时,但在这种情况下,用户将首次重新定向到Facebook两次获得publish_action然后获取电子邮件和生日许可这是不好的.

Dhe*_*ngh 12

Facebook登录可让您的应用访问个人的公开个人资料,朋友列表和电子邮件地址.这三个权限不需要审核.相反,您应用的用户将选择是否要授予对此信息的访问权限.

为了让您的应用访问个人Facebook个人资料的其他元素(读取权限)或代表他们向Facebook发布内容(写入权限),您需要提交以供审核.

请参阅:https://developers.facebook.com/docs/apps/review#submitlogin

更新 :

应用应该将读取和发布权限请求分开.

 FBSDKLoginManager *login = [[FBSDKLoginManager alloc] init];

    [login logInWithPublishPermissions:@[@"publish_actions"] handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) {
        if (error) {
            // Process error
        } else if (result.isCancelled) {
            // Handle cancellations
        } else {
            // If you ask for multiple permissions at once, you
            // should check if specific permissions missing
            if ([result.grantedPermissions containsObject:@"publish_actions"]) {
                // Do work

                [login logInWithReadPermissions:@[@"user_likes",@"user_birthday"] handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) {
                    if (error) {
                        // Process error
                    } else if (result.isCancelled) {
                        // Handle cancellations
                    } else {
                        // If you ask for multiple permissions at once, you
                        // should check if specific permissions missing
                        if ([result.grantedPermissions containsObject:@"user_birthday"]) {
                            // Do work

                            NSLog(@"Permission  2: %@",result.grantedPermissions);
                        }
                    }
                }];

            }
        }
    }];
Run Code Online (Sandbox Code Playgroud)

您在读取权限中不需要public_profile,就好像被授予了publish_actions的权限一样,它也获得了public_profile的权限.


V.J*_*.J. 6

正如我所看到的那样,您尝试使用" user_likes "," user_birthday "," public_profile "和" publish_actions "权限.

自2015年5月1日起,facebook仅启用" public_profile ","email"和" user_friends ",无需审批流程.

对于" user_likes "," user_birthday "和" publish_actions ",您需要获得facebook的批准.

对于审核流程,您可以从Facebook Review获得帮助.