capacitor-community / facebook-login

Facebook Login support
MIT License
103 stars 54 forks source link

Serious error executing plugin when login asking for manage permissions #46

Closed mcprol closed 3 years ago

mcprol commented 3 years ago

I'm trying to get some manage permissions with the login operation, but I always get the same error: Caused by: Cannot pass a publish or manage permission (ads_management) to a request for read authorization

In the login method you are using the api call: LoginManager.getInstance().logInWithReadPermissions(this.getActivity(), permissions);

It would be possible to use the method LoginManager.getInstance().logIn(this.getActivity(), permissions); that also is available in the api?

The full stacktrace that I get is:

2021-05-19 23:20:05.808 23949-24286/com.ionicframework.metric2020l E/Capacitor: Serious error executing plugin java.lang.reflect.InvocationTargetException at java.lang.reflect.Method.invoke(Native Method) at com.getcapacitor.PluginHandle.invoke(PluginHandle.java:99) at com.getcapacitor.Bridge$1.run(Bridge.java:542) at android.os.Handler.handleCallback(Handler.java:808) at android.os.Handler.dispatchMessage(Handler.java:101) at android.os.Looper.loop(Looper.java:166) at android.os.HandlerThread.run(HandlerThread.java:65) Caused by: Cannot pass a publish or manage permission (ads_management) to a request for read authorization at com.facebook.login.LoginManager.validateReadPermissions(LoginManager.java:525) at com.facebook.login.LoginManager.logInWithReadPermissions(LoginManager.java:396) at com.getcapacitor.community.facebooklogin.FacebookLogin.login(FacebookLogin.java:183) at java.lang.reflect.Method.invoke(Native Method)  at com.getcapacitor.PluginHandle.invoke(PluginHandle.java:99)  at com.getcapacitor.Bridge$1.run(Bridge.java:542)  at android.os.Handler.handleCallback(Handler.java:808)  at android.os.Handler.dispatchMessage(Handler.java:101)  at android.os.Looper.loop(Looper.java:166)  at android.os.HandlerThread.run(HandlerThread.java:65)  2021-05-19 23:20:05.818 23949-24286/com.ionicframework.metric2020l E/AndroidRuntime: FATAL EXCEPTION: CapacitorPlugins Process: com.ionicframework.metric2020l, PID: 23949 java.lang.RuntimeException: java.lang.reflect.InvocationTargetException at com.getcapacitor.Bridge$1.run(Bridge.java:551) at android.os.Handler.handleCallback(Handler.java:808) at android.os.Handler.dispatchMessage(Handler.java:101) at android.os.Looper.loop(Looper.java:166) at android.os.HandlerThread.run(HandlerThread.java:65) Caused by: java.lang.reflect.InvocationTargetException at java.lang.reflect.Method.invoke(Native Method) at com.getcapacitor.PluginHandle.invoke(PluginHandle.java:99) at com.getcapacitor.Bridge$1.run(Bridge.java:542) at android.os.Handler.handleCallback(Handler.java:808)  at android.os.Handler.dispatchMessage(Handler.java:101)  at android.os.Looper.loop(Looper.java:166)  at android.os.HandlerThread.run(HandlerThread.java:65)  Caused by: Cannot pass a publish or manage permission (ads_management) to a request for read authorization at com.facebook.login.LoginManager.validateReadPermissions(LoginManager.java:525) at com.facebook.login.LoginManager.logInWithReadPermissions(LoginManager.java:396) at com.getcapacitor.community.facebooklogin.FacebookLogin.login(FacebookLogin.java:183) at java.lang.reflect.Method.invoke(Native Method)  at com.getcapacitor.PluginHandle.invoke(PluginHandle.java:99)  at com.getcapacitor.Bridge$1.run(Bridge.java:542)  at android.os.Handler.handleCallback(Handler.java:808)  at android.os.Handler.dispatchMessage(Handler.java:101)  at android.os.Looper.loop(Looper.java:166)  at android.os.HandlerThread.run(HandlerThread.java:65)  2021-05-19 23:20:05.881 23949-24286/com.ionicframework.metric2020l I/Process: Sending signal. PID: 23949 SIG: 9

Regards Marcos

mcprol commented 3 years ago

In case it helps someone, I have changed line LoginManager.getInstance().logInWithReadPermissions(this.getActivity(), permissions); by the line: LoginManager.getInstance().logIn(this.getActivity(), permissions);

and it works for me

rdlabo commented 3 years ago

Thanks for issue. This is Facebook SDK code:

  public void logInWithReadPermissions(Activity activity, Collection<String> permissions) {
    validateReadPermissions(permissions);

    logIn(activity, permissions);
  }  

public void logIn(Activity activity, Collection<String> permissions) {
    LoginClient.Request loginRequest = createLoginRequest(permissions);
    startLogin(new ActivityStartActivityDelegate(activity), loginRequest);
  }

This change looks fine. I will change. Thanks.

rdlabo commented 3 years ago

https://github.com/capacitor-community/facebook-login/releases/tag/v3.1.1