いくつかのアクセス許可 (いくつかの読み取りと公開) を持つサーバー側のアクセス トークンを提供するタスクがあります。バージョン 3.0 には、openForRead と openForPublish という 2 つのセッションを開くメソッドがあります。
最初に、アプリケーションは読み取り許可を求めています。
private void authorizeFacebook() {
if (DEBUG)
Log.d(TAG, "Facebook authorization");
Session session = Session.getActiveSession();
if (!session.isOpened() && !session.isClosed()) {
session.openForRead(this.createReadRequest());
} else {
Session.openActiveSession(this, true, mFacebookSessionCallback);
}
}
ただし、ステータス コールバックの後、アプリケーションは公開許可を要求します。
if (session.isOpened() && !session.getPermissions().contains("publish_stream")) {
if (DEBUG)
Log.d(TAG, "Facebook, Request additional permission: Publish Stream");
session.requestNewPublishPermissions(new NewPermissionsRequest(this, Arrays.asList("publish_stream")).setCallback(mFacebookSessionCallback).setLoginBehavior(SessionLoginBehavior.SUPPRESS_SSO));
また、追加の許可要求の後、Facebook ログイン フォームが表示され、ユーザーが資格情報を再度入力する必要があるため、ユーザー エクスペリエンスに大きな問題があります。SDK 開発者が設計したとおりに機能しますか?