1

我该如何寻求facebook权限?如何在Chrome中询问publish_stream权限

Chrome封锁弹出,并抛出使用的FB.login

function askPermission() { 
    FB.login(function(response) { 
     if(response.authResponse) { 
      // Do what I want to do 
     } 
    }, {scope:'publish_stream'}); 
} 

当很多警告的所以不是,我想这从How to set permission dialog for post message on wall

function askPermission(appid, redirect_uri, response_type, scope, callback) { 
    // Redirect the user back after authorization 
    var path = 'https://www.facebook.com/dialog/oauth?'; 
    var queryParams = ['client_id='+appid, 'redirect_uri='+encodeURI(redirect_uri), 'response_type='+response_type, 'scope='+scope]; 
    var query = queryParams.join('&'); 
    var url = path + query; 
    top.location.href = url; 
} 

,但它并没有正常工作好。我收到了一条错误消息,如

“YourApp发生了错误,请稍后再试。”

编辑: Chrome仍然会扔了很多“不安全的JavaScript尝试与URL访问框架”甚至当我尝试过:

<input type="button" value="Convidar amigos" class="verde" onclick="FB.login(function(response){ if(response.authResponse){post();} }, {scope:'email,publish_stream'});"/> 

回答

0

你应该只调用用户交互FB.login(点击,提交等)或者它会在大多数浏览器中被阻止。您看到的错误是因为JS-SDK无法与被阻止的窗口交互。

+0

我发现为什么使用重定向方法不起作用。 uri必须是绝对的。 我没有将http://添加到我传递给参数redirect_uri的URI值: 'function askPermission(appid,redirect_uri,response_type,scope,callback)' 我没有收到错误描述因为我用来测试的用户不是应用程序开发人员。 愚蠢的错误。 – iw123w 2011-12-28 14:29:05

相关问题