これを並べ替えるにはしばらく時間がかかり、ユーザーがボタンをクリックして自分の商品をFacebookのフィードで共有できるようになりました。彼らが実際に共有したいと思うまでサインインするように促されたくなかったので、私はただの許可を出したがっていました。次のコードは、最初のログイン/読み取り権限リクエストとパブリッシュ権限リクエストをスタックします。これは、ユーザーには最初に読んでからパブリッシュするためにプロンプトをダブルプロンプトしますが、ソリューションに関係なく、今すぐ必要です。
Session session = Session.getActiveSession();
if (session == null) {
session = new Session.Builder(this).setApplicationId("<APP ID HERE>").build();
Session.setActiveSession(session);
session.addCallback(new StatusCallback() {
public void call(Session session, SessionState state, Exception exception) {
if (state == SessionState.OPENED) {
Session.OpenRequest openRequest = new Session.OpenRequest(FacebookActivity.this);
openRequest.setLoginBehavior(SessionLoginBehavior.SSO_WITH_FALLBACK);
session.requestNewPublishPermissions(
new Session.NewPermissionsRequest(FacebookActivity.this, PERMISSIONS));
}
else if (state == SessionState.OPENED_TOKEN_UPDATED) {
publishSomething();
}
else if (state == SessionState.CLOSED_LOGIN_FAILED) {
session.closeAndClearTokenInformation();
// Possibly finish the activity
}
else if (state == SessionState.CLOSED) {
session.close();
// Possibly finish the activity
}
}});
}
if (!session.isOpened()) {
Session.OpenRequest openRequest = new Session.OpenRequest(this);
openRequest.setLoginBehavior(SessionLoginBehavior.SSO_WITH_FALLBACK);
session.openForRead(openRequest);
}
else
publishSomething();
うん、かなり悪いFB SDKデザイン。 – rahulg
私は同じ問題を抱えています。私は、Facebookのアプリケーションがユーザーの壁にデータを共有できるようにすることです。公開するセッションを開くたびに、インストールされているアプリケーションからユーザートークンを読み込まず、信用状なので、私を助けることができるものは見つかりましたか? –