0

私は JS-SDK を使用しており、ユーザーは既に Facebook アプリケーションで承認されています。

これで、グラフを開くアクションが承認され、公開が開始されました。

私のユーザーは私のウェブサイトに入り、JS SDK は自動的に FB.getLoginStatus でログイン ステータスを取得し、ユーザーが Facebook にログインしている場合は処理を行います。

Facebook でアクションを公開するには、「publish_actions」権限が必要です。そのため、「publish_actions」値を使用してログイン ボタンにスコープ属性を追加し、クリックすると機能します。

しかし、問題があります。ユーザーから今日までこの許可を取得していませんでした。したがって、ユーザーがJS SDKでこの許可を自動的に受け入れない場合、この許可を受け入れるためにウィンドウを開きたいと思います。システムがこれを行っていないためです。

シナリオ(より明確なアイデアのため):

1) ユーザーは先週私のウェブサイトにアクセスし、ログイン ボタンで承認されました。

2) 昨日、Web サイトに Open Graph を追加し、スコープ属性をログイン ボタンに追加しました。

3) Facebook にログインしたユーザー。そして、今日私のウェブサイトに来ました。JS SDK は自動的に承認され、「この Web サイトには新しい権限があります」などのエラーは表示されませんでした。

したがって、このユーザーに新しい認証ダイアログを表示したいと思います。

4

1 に答える 1

2

ユーザーがページを読み込んだら、js sdkを使用して、ユーザーがアプリに付与した権限を確認できます。publish_actionsが含まれていない場合は、ユーザーに権限を付与するように依頼してください。

次のように、クライアント側で完全に実行できます。

FB.api("me/permissions", function(response) {
    if (response && response.data && response.data.lengh == 1 && !("publish_actions" in response.data)) {
        FB.login(function(response) {
            console.log(response);
        }, { scope: "publish_actions" });
    }
});

または、 FB.loginを呼び出す代わりに、ユーザーを認証ダイアログに送信することもできます。これはあなた次第です。また、クライアントではなくサーバー側でも同様の方法でアクセス許可を確認できます。これもユーザー次第です。

于 2012-04-06T23:04:04.497 に答える