Facebook SDK を使用して Open Request を作成しているときに、次のエラーが発生します。
エラー:
原因: java.lang.UnsupportedOperationException: セッション: すでに開いているセッションを開こうとしました。com.facebook.Session.open(Session.java:985) com.facebook.Session.openForRead(Session.java:388) com.photos.pixitor.activities.PhotoEffectBaseActivity.loginRequest(PhotoEffectBaseActivity.java:619)
最初にリクエストを行うと、エラーは発生しません。しかし、最初にログイン リクエストを作成してからリクエストをキャンセルし、再度ログイン リクエストをメインにすると、アプリケーションがクラッシュします。
コードは次のとおりです。
OpenRequest リクエスト = 新しい Session.OpenRequest(this); request.setPermissions(Arrays.asList("basic_info"));
if(session.isOpened()){
session.requestNewReadPermissions(new NewPermissionsRequest(
PhotoEffectBaseActivity.this,"basic_info"));
session.addCallback(new StatusCallback() {
@Override
public void call(Session session, SessionState state, Exception exception) {
if(state.isOpened()){
Util.logd("Opened+Publishing Request");
publishPhotoRequest(session);
}
if(session.isOpened()){
Util.logd("Session is Opened");
getUserDetails(session);
}
}
});
return session;
}
Util.logd("Session Not Opened: Opening For Read");
session.openForRead(request);
Util.logd("Session is Opened for Read");
session.addCallback(new StatusCallback() {
@Override
public void call(Session session, SessionState state, Exception exception) {
if(state.isOpened()){
Util.logd("Opened+Publishing Request");
publishPhotoRequest(session);
}
if(session.isOpened()){
Util.logd("Session is Opened");
getUserDetails(session);
}
}
});