J'utilise FBSDKLoginButton
pour permettre la connexion de l'utilisateur en utilisant Facebook
et en utilisant FBSDKLoginButton.readPermissions = @[@"public_profile",@"email",@"user_likes",@"email",@"user_birthday"];
pour demander des autorisations, mais j'ai besoin d'une autre autorisation qui est publication_actions que je devrais utiliser FBSDKLoginManager
avec
logInWithReadPermissions:@[@"public_profile",@"user_likes",@"user_birthday"]
logInWithPublishPermissions:@[@"publish_actions"]
mais cela pour une raison quelconque affecte ma permission "il manque une partie de ma permission check image
Code: -
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
}
}
}];
Résultat: -
** il faut beaucoup de temps pour rediriger l'utilisateur vers la vue des autorisations? et toutes mes autorisations n'apparaissent pas à l'utilisateur **
Remarque: - je sais que cet avertissement signifie que je dois soumettre mon application pour examen, mais ce n'est pas ce que je demande en ce moment.
Mise à jour
Quand j'ai essayé la solution "Dheeraj Singh", mais dans ce cas, l'utilisateur sera redirigé deux fois vers Facebook pour la première fois pour obtenir publish_action, puis pour obtenir les e-mails et l'autorisation d'anniversaire, ce qui est mauvais.
Facebook Login permet à votre application d'accéder au profil public, à la liste d'amis et à l'adresse e-mail d'une personne. Ces trois autorisations ne nécessitent pas de révision. Au lieu de cela, les utilisateurs de votre application choisiront s'ils souhaitent accorder l'accès à ces informations.
Pour que votre application accède à des éléments supplémentaires du profil Facebook d'une personne (autorisations de lecture) ou pour publier du contenu sur Facebook en son nom (autorisations d'écriture), vous devrez soumettre pour examen.
Voir: https://developers.facebook.com/docs/apps/review#submitlogin
Mise à jour:
Les applications doivent séparer la demande d'autorisations de lecture et de publication.
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);
}
}
}];
}
}
}];
Vous n'avez pas besoin de public_profile dans la permission de lecture comme si accordé la permission de publier_actions, il obtient également la permission pour public_profile.
Comme je l'ai vu, vous codez que vous essayez d'utiliser les " user_likes ", " user_birthday "," public_profile "et" publish_actions "autorisations .
Depuis le 1er mai 2015, Facebook a uniquement activé " public_profile ", "email" et " user_friends "sont disponibles sans le processus d'approbation.
Pour " user_likes ", " user_birthday " et " publish_actions "vous devez obtenir l'approbation du facebook .
Pour le processus de révision, vous pouvez obtenir de l'aide de Facebook Review .
J'ai également le même problème avec l'autorisation user_posts pendant deux semaines, mais après quelques recherches, j'ai trouvé la solution pour cela, si vous rencontrez toujours ce problème, suivez ces étapes
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)")
}
}
}