2012-04-16 10 views
0

誰かがボタンをクリックしたときに、そのユーザーがpublish_stream権限を持っているかどうかをチェックしたい場合は、彼が持っていれば私たちの機能を続行します。ユーザが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に絶望的になりました。

答えて

1

私はこれが最大の解決策であるかどうかわからないんだけど、私はグラフAPIを使用して許可を確認し、JavaScriptを使用して結果に基づいて行動するためにPHPを使用します。

<?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' ?>; 
+0

ヘヘいや、それは正常に動作する必要があります。私がPythonを使用しているので、私はdjangoテンプレートタグを作ることができたと思います。私はこれが最良の解決策だとは思わないが、この方法では、ページが読み込まれる前にアクセス許可がfacebookでチェックされるまで待たなければならないので、これはやりやすいことだ。 –

関連する問題