Android 앱에서 Facebook 및 Parse SDK를 사용하고 있습니다. 나는 Session.StatusCallback
에서 OPENED
인지 여부에 따라 로그인 단편 및 주 메뉴 단편에 대한 조각 간을 변경하여 Facebook 로그인 및 인증을위한 this 자습서를 따랐습니다. 그리고이 응용 프로그램은 Parse와 통합되기 전에 완벽하게 작동합니다.Android - ParseFacebookUtils.logIn을 사용할 때 Facebook 세션이 닫혔습니다.
이제 문제가 발생합니다. 메인 메뉴 단편의 onResume()
메소드에서 다음 코드를 추가했습니다. 조각이 재개되고, 페이스 북 세션이 열릴 때 나는 나중에 ParseUser
put
및 get
데이터를 사용할 수 있도록
final Session session = Session.getActiveSession();
if(session != null && session.isOpened()) {
Request meRequest = Request.newMeRequest(session, new Request.GraphUserCallback() {
@Override
public void onCompleted(GraphUser graphUser, Response response) {
if(session == Session.getActiveSession()) {
// Check if the session is same as usual
ParseFacebookUtils.logIn(graphUser.getId(), session.getAccessToken(),
session.getExpirationDate(), new LogInCallback() {
@Override
public void done(ParseUser user, ParseException err) {
if (user == null) {
// The user wasn't saved.
System.out.println("User was not saved to Parse. ");
} else {
// The user has been saved to Parse.
System.out.println("User has successfully been saved to Parse.");
if (user.isNew()) {
// This user was created during this session with Facebook Login.
System.out.println("ParseUser created.");
} else {
// This user existed before.
System.out.println("User exists in Parse. Pull their values: " + user);
}
}
}
});
}
}
});
meRequest.executeAsync();
}
그래서, 페이스 북 사용자는 구문 분석 데이터베이스에 추가됩니다. 그러나 ParseFacebookUtils.logIn()
을 사용하면 Facebook 세션을 CLOSED
으로 만들고 Session.StatusCallback
을 호출하므로 표시 조각을 다시 로그인 조각으로 전환 할 수 있습니다.
나는이 문제를 하루 종일 처리했지만 해결 방법을 찾을 수 없습니다. 아래 코드를 Application에 추가했지만 여전히 작동하지 않습니다.
Parse.enableLocalDatastore(this);
Parse.initialize(this, Application_id, Client_key);
ParseFacebookUtils.initialize(getString(R.string.facebook_app_id));
해결 방법이 있습니까? 나는 this을 읽었지만 아주 좋은 해결책은 제공되지 않습니다. 미리 감사드립니다!
페이스 북 사용자를 구문 분석하여 연결하는 것을 포함하여 페이스 북 인증의 경우에도 마찬가지입니다. Session 클래스에 의해 반환 된 세션은 null이지만, Facebook 사용자가 구문 분석에 연결되어 있다면,'ParseFacebookUtils.getSession()'은 그렇지 않습니다. – reubenjohn