2

いくつかのアクセス許可 (いくつかの読み取りと公開) を持つサーバー側のアクセス トークンを提供するタスクがあります。バージョン 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 開発者が設計したとおりに機能しますか?

4

2 に答える 2

5

この答えは遅いかもしれません。Android用のFB SDK 3.0でも同様の問題がありました。これは SDK のバグであり、3 月 20 日にリリースされた Android 用の FB SDK 3.0.1 で修正されています。変更ログには次のように記載されています。

Web ビューのログイン ダイアログには、新しいアクセス許可が要求されているシナリオのトークン情報が含まれています。これにより、セッションに対して新しいアクセス許可が要求されるたびに、ユーザーがログイン資格情報を入力する必要がなくなります。

アップグレード後に再試行してください。ここから新しい SDK を取得します。

于 2013-04-01T07:46:16.853 に答える
0

ユーザーがAndroidデバイスにFacebookアプリをインストールしていない場合、追加のアクセス許可を要求されるたびにログイン画面が表示されることがわかりました。ただし、ユーザーが自分のデバイスにFacebookアプリをインストールしている場合は、[はい]/[いいえ]ボタンをクリックするだけで追加のアクセス許可を確認/非確認する必要があることがわかります。

ところで、Facebookセッションを開く方法、追加のアクセス許可を要求する方法などを説明する一連の3つの短い記事をまとめました。これが最初です。

于 2013-02-28T10:40:02.603 に答える