0

誰かがボタンをクリックしたときに、ユーザーが publish_stream 権限を持っているかどうかを確認したいのですが、持っている場合は、関数を続行します。

現在、以下の方法で作成しています。

function facebookLogin(callback)
{
    FB.login(function(response) {
       if (response.authResponse) {
            console.log('We should save the access token');
            callback();
       } else {
         console.log('User cancelled login or did not fully authorize.');
         jGrowl('Without authorizing our application you will not be able to access all features.');
       }
     }, {scope: 'publish_stream,'});
}

コールバックは、ユーザーが publish_stream 権限を与えた後に実行したいアクションです。Facebookのログイン機能を実行する前に、最初に許可があるかどうかを確認したいと思います。

なぜ同期したいのですか?クリックイベントハンドラーでそれを行う必要があるため、そうしないと、ブラウザがポップアップをランダムに開いていると不平を言い始めるので、同期的に行う必要があると思います。

長い遅い一日の後、js と facebook で必死になって、どうもありがとう。

4

1 に答える 1

1

これが最善の解決策かどうかはわかりませんが、私は PHP を使用して、Graph API を使用してアクセス許可を確認し、JavaScript を使用して結果に基づいて行動します。

<?php
$url = 'https://graph.facebook.com/me/permissions?access_token=' . $token;
$permissions = json_decode(file_get_contents($url));
$has_publish_permission = isset($permissions->data[0]->publish_stream);
?>
var can_publish = <?php echo $has_publish_permission ? 'true' : 'false' ?>;
于 2012-05-16T08:21:18.550 に答える