繁体   English   中英

FBSDKLoginManager logInWithReadPermissions?

FBSDKLoginManager logInWithReadPermissions?

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我正在使用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"]

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

码:-

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
        }
    }
}];

结果:-

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

在此输入图像描述

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

更新

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

4 个回复

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);
                        }
                    }
                }];

            }
        }
    }];

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

正如我所看到的那样,您尝试使用“ 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获得帮助。

我也有两周的user_posts权限相同的问题,但经过一些搜索后我找到了解决方案,如果你仍然有这个问题,请按照这些步骤

  1. 转到http://developers.facebook.com并登录到您的开发者帐户。
  2. 选择您的应用程序并转到角色部分。
  3. 在测试人员部分添加测试人员。
  4. 然后重新安装应用程序并使用该测试人员帐户登录。
  5. 现在,您尝试从测试人员获得所需的权限,测试人员将看到所有权限列表。
var login = FBSDKLoginManager()


@IBAction func fbBtnPressed(_ sender: AnyObject) {

    login.logIn(withReadPermissions: ["email"], from: self) { (FBSDKLoginManagerLoginResult, Error) in

        if Error != nil {
            print("O Login via Facebook Falhou. Erro: \(Error)")
        } else {
            let accessToken = FBSDKAccessToken.current().tokenString
            self.gotoScreen() //Function for screen after login succesfull 
            print("Acesso concedido ao Facebook. \(accessToken)")
        }

    }

}
1 FBSDKLoginManager.loginWithReadPermissions不在iOS上调用处理程序

简化,代码是这样的: 调用它时,它会生成以下日志语句: (上面的语句之间的大的时间差异是由于我使用调试器来逐步执行logInWithReadPermissions的内部。没有调试器的运行不会改变行为。) 我已经在安装了Facebook原生应用程序并且我已登录的设备上试过这个 ...

3 iOS / Swift / FBSDKLoginKit:使用FBSDKLoginManager()登录。logInWithReadPermissions通过获取result.isCancelled为true而失败。

我正在开发其中添加了FBSDKLoginKit的应用程序,以允许用户使用Facebook登录。 输入Facebook用户名和密码后,我将看到以下页面。 现在,我按确定按钮,我看到空白页。 不出所料,我应该看不到空白页。 因此,我按了左上角的“完成”按钮,从SDK调用了程序 ...

5 FBSDKLoginManager注销和登录管理

我正在尝试使用FB SDK登录。 但是,偶尔会有一个用户已经登录。这是下面我首先用于注销的代码。 我想知道两件事: 1)以下人员是否符合比赛条件? 2)如果是这样,应该并且应该如何使LogOut同步,从而避免这种情况发生? ...

6 FBSDKLoginManager无法正常工作

在我的应用程序中,Facebook的登录工作之前,但在最后的facebook sdk更新(在iOS 9.0中测试),它无法正常工作。 1)当用户点击登录Facebook时,会显示SFSafariViewController(虽然安装了Facebook应用程序,但行为是默认打开SVC~但是没 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM