private static void login()

in facebook-android-wrapper/src/com/facebook/unity/FBLogin.java [102:165]


    private static void login(
            String params,
            final FBUnityLoginActivity activity,
            boolean isPublishPermLogin,
            boolean isDeviceAuthLogin) {
        if (!FacebookSdk.isInitialized()) {
            Log.w(FB.TAG, "Facebook SDK not initialized. Call init() before calling login()");
            return;
        }

        final UnityMessage unityMessage = new UnityMessage("OnLoginComplete");
        unityMessage.put("key_hash", FB.getKeyHash());
        UnityParams unity_params = UnityParams.parse(params,
                "couldn't parse login params: " + params);

        List<String> permissions = null;
        if (unity_params.hasString("scope")) {
            permissions = new ArrayList<>(
                    Arrays.asList(unity_params.getString("scope").split(",")));
        }

        String callbackIDString = null;
        if (unity_params.has(Constants.CALLBACK_ID_KEY)) {
            callbackIDString = unity_params.getString(Constants.CALLBACK_ID_KEY);
            unityMessage.put(Constants.CALLBACK_ID_KEY, callbackIDString);
        }

        final String callbackID = callbackIDString;

        // For now only web login
        LoginManager.getInstance().registerCallback(
                activity.getCallbackManager(),
                new FacebookCallback<LoginResult>() {
                    @Override
                    public void onSuccess(LoginResult loginResult) {
                        sendLoginSuccessMessage(loginResult.getAccessToken(), loginResult.getAuthenticationToken(), callbackID);
                    }

                    @Override
                    public void onCancel() {
                        unityMessage.putCancelled();
                        unityMessage.send();
                    }

                    @Override
                    public void onError(FacebookException e) {
                        Log.w(FB.TAG, "Error occurred, ", e);
                        unityMessage.sendError(e.getMessage());
                    }
                });

        LoginManager loginManager;
        if (isDeviceAuthLogin) {
            loginManager = DeviceLoginManager.getInstance();
        } else {
            loginManager = LoginManager.getInstance();
        }

        if (isPublishPermLogin) {
            loginManager.logInWithPublishPermissions(activity, permissions);
        } else {
            loginManager.logInWithReadPermissions(activity, permissions);
        }
    }