Facebook
SDK 3.0 を使用して画像を投稿しようとしていますが、いくつかの問題に直面しています。アプリを閉じてアプリを再度開くと、常に else 条件になり、if 条件になります。保存する必要がありますsession
か、それとも既に保存されていますか??
Session mSession = Session.getActiveSession();
if (mSession != null
&& mSession.getPermissions().contains("publish_actions")) {
postPhoto();
} else {
if (mSession == null) {
Log.d("Facebook", "Session null");
mSession = new Session.Builder(this).setApplicationId(
"xxxxxxxxxxxxxxx").build();
Session.setActiveSession(mSession);
}
if (!mSession.isOpened()) {
Log.d("Facebook", "Session not opened");
Session.OpenRequest sessionRequest = new Session.OpenRequest(
this);
sessionRequest.setPermissions(PERMISSIONS);
sessionRequest.setCallback(statuscallback);
sessionRequest
.setLoginBehavior(SessionLoginBehavior.SSO_WITH_FALLBACK);
mSession.openForPublish(sessionRequest);
}
}
StatusCallback statuscallback = new StatusCallback() {
@Override
public void call(Session session, SessionState state,
Exception exception) {
// TODO Auto-generated method stub
if (session.isOpened()) {
Log.d("Facebook", "Logged in");
postPhoto();
}
if (session.isClosed()) {
Log.d("Facebook", "Logged out");
}
}
};
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
Session.getActiveSession().onActivityResult(this, requestCode,
resultCode, data);
Log.d("Facebook", "onActivity Result");
}
ユーザーをログアウトする必要がある場合はどうすればよいですか??
次のコード onDestroy() を試しました
if (mSession.isOpened())
mSession.closeAndClearTokenInformation();
上記のコードを destroy メソッドで使用すると、次回アプリを開くたびに常にこの行でエラーがスローされます
mSession.openForPublish(sessionRequest);
みんな助けてください。回答/提案は非常に高く評価されます。
ありがとう