FBSDKLoginManager logInWithReadPermissions?
我正在使用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然后获得电子邮件和生日许可,这是不好的。
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权限两周,但经过一些搜索我找到了解决方案,如果你仍然有这个问题,请按照这些步骤
- 转到http://developers.facebook.com并登录到您的开发者帐户。
- 选择您的应用并转到角色部分。
- 在测试人员部分添加测试人员。
- 然后重新安装应用程序并使用该测试人员帐户登录。
- 现在,您尝试从测试人员获得所需的权限,测试人员将看到所有权限列表。
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)") } } }
- Swift中的本地化 – 即使应用程序有更多语言,也可以将应用程序限制为一种语言
- 使用AVAudioPlayer播放背景声音序列
- iOS >> UIButton ImageView属性>>如何设置内容模式?
- 由于缺lessinfo.plist和其他文件,OS X,iPhone和Android上的Worklight构build失败
- 如何添加2个textfields intget(swift3)
- 使用Swift的ARKit测量长度
- 如何使数组的uitableview索引和部分
- 将UIViewController的视图添加到另一个UIViewController的视图是可取的吗?
- build议使用Core Graphics技术来绘制非常自定义的UITableViewCells