2012-04-16 81 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登录功能之前先检查是否有权限。

为什么我要它同步?因为我需要在点击甚至处理程序中完成它,否则浏览器开始抱怨im随机打开弹出窗口,所以应该同步完成我的想法。

非常感谢,经过漫长的一天后,js和facebook越来越绝望。

回答

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

呵呵推倒它应该工作正常。猜猜我可以制作一个Django模板标签,因为我使用的是Python。虽然我不认为这是最好的解决方案,但它是可行的,因为这样人们将不得不等待,直到页面加载之前使用Facebook检查权限。 – 2012-05-16 08:40:08

相关问题