Мне удалось успешно реализовать кнопку входа в Facebook.Моя единственная проблема сейчас заключается в том, что у меня возникают проблемы с проверкой, вошел ли пользователь в систему.
Это код, когда пользователь нажимает кнопку входа в систему:
loginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
GraphRequest request = GraphRequest.newMeRequest(loginResult.getAccessToken(), new GraphRequest.GraphJSONObjectCallback() {
@Override
public void onCompleted(JSONObject object, GraphResponse response) {
getFacebookData(object);
}
});
Bundle parameters = new Bundle();
parameters.putString("fields", "name, email, picture");
request.setParameters(parameters);
request.executeAsync();
}
@Override
public void onCancel() {
}
@Override
public void onError(FacebookException error) {
}
});
getFacebookData
имеет этоcode:
private void getFacebookData(JSONObject object) {
try {
Intent intent = new Intent(MainActivity.this, Profile.class);
String fb_name = object.getString("name");
String fb_email = object.getString("email");
URL profile_picture = new URL("http://graph.facebook.com/" + object.getString("id") + "/picture?type=large");
intent.putExtra("name", fb_name);
intent.putExtra("email", fb_email);
intent.putExtra("profile_picture", profile_picture.toString());
intent.putExtra("userOption", 2);
startActivityForResult(intent, 1);
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (JSONException e) {
e.printStackTrace();
}
}
Обычно, когда пользователь входит в систему, он отправляет имя пользователя, адрес электронной почты и данные изображения профиля в действие Profile
.
Теперь, что у меня естьв моем onCreate
методе внутри моего MainActivity
класса:
AccessToken accessToken = AccessToken.getCurrentAccessToken();
boolean isLoggedIn = accessToken != null && !accessToken.isExpired();
if (isLoggedIn) {
}
Этот код выше проверяет, вошел ли пользователь в свою учетную запись Facebook.То, что я хочу поместить в оператор if, это getFacebookData()
, потому что это отправит данные в действие Profile
и сразу же начнет действие Profile
вместо перехода к MainActivity
.Моя проблема в том, что я должен передать JSONObject
.
Что мне нужно сделать, чтобы это исправить, поскольку я не знаю, что JSONObject
передать в функцию getFacebookData()
?