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);
}
}