Od czasu wydania nowego FBSDK napotykam ten problem.
Scenariusz:
1. Logowanie użytkownika do mojej aplikacji przez FBLogin
2.User odmawia jedno z moich uprawnień
- Moja aplikacja ustawia go z powrotem na pierwszym ekranie (nie pozwalam na tworzenie konta bez podawania informacji)
- Próbuje zalogować się ponownie
- Uświadamia sobie, że FBSDK zapisał swoje ustawienia, których nie może zmienić.
Jak zapewnić użytkownikowi możliwośćZmień to? Moja aplikacja przechodzi do rzeczy, zauważam odrzucone pozwolenie i daję użytkownikowi powiadomienie, aby zmienić ustawienie. Ale nie mam pojęcia, co robić w tym momencie.
Odpowiedzi:
3 dla odpowiedzi № 1Po pierwsze, nie wolno ci robić wszystkich uprawnień jako obowiązkowych z Facebooka. Chociaż w razie potrzeby można sprawdzić, czy udzielono pozwolenia, czy nie, korzystając z poniższego kodu
if ([[FBSDKAccessToken currentAccessToken] hasGranted:@"publish_actions"]) {
// TODO: publish content.
} else {
FBSDKLoginManager *loginManager = [[FBSDKLoginManager alloc] init];
[loginManager logInWithPublishPermissions:@[@"publish_actions"]
fromViewController:self
handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) {
//TODO: process error or result.
}];
}
Aby sprawdzić odrzucone uprawnienia
FBSDKLoginManager *loginManager = [[FBSDKLoginManager alloc] init];
[loginManager logInWithPublishPermissions:@[@"publish_actions"]
fromViewController:self
handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) {
if ([result.declinedPermissions containsObject:@”publish_actions”]) {
// TODO: do not request permissions again immediately. Consider providing a NUX
// describing why the app want this permission.
} else {
// ...
}
}];
Uwaga : Jeśli użytkownik odrzuci uprawnienia, powinieneśnie od razu poprosić o nich ponownie. Zamiast tego Twoja aplikacja powinna nadal działać. Możesz rozważyć dostarczenie przewodnika lub interfejsu użytkownika wyjaśniającego korzyści wynikające z przyznania tego uprawnienia, ale powinien on poprosić o ponowne podanie tylko wtedy, gdy użytkownik wykona działanie, które tego wymaga.
Ref: https://developers.facebook.com/docs/facebook-login/ios/permissions https://developers.facebook.com/docs/ios/errors