01/10/2025 10:53:00
Problem Description
Permissions can be passed in when Facebook is logged in. Users can inversely choose these permissions. However, when you log in Facebook again, you cannot reversely select them.
Cause of the Problem
Facebook platform side's strategy.
Solution
1.The above phenomenon is in line with Facebook's official guidelines.
Use FBSDKLoginManager to request additional permissions or request previously declined permissions using the logInWith*:
methods. FBSDKLoginManager will see it's a re-request by the availability of [FBSDKAccessToken currentAcccessToken].
https://developers.facebook.com/docs/facebook-login/ios/permissions#permissions-requesting
2.If you want to avoid it, the current effective solution is as follows.
If the game only passes in the "user_Friends" permission of Facebook, after the user cancels the authorization, it will not pass in the "user_friends" permission. If the game wants to pass in the permission, it should pop up a window to notify the user and then pass in it after the user confirms the notification, according to Facebook's best practices.
"Ask for permissions in context and explain why"
https://developers.facebook.com/docs/facebook-login/best-practices
TODO: do not request permissions again immediately. Consider providing a NUX
describing why the app want this permission.
https://developers.facebook.com/docs/facebook-login/ios/permissions#permissions-declining
All rights reserved.