Javascript FB.ui permissions.request无法正常工作

Javascript FB.ui permissions.request无法正常工作,javascript,facebook,facebook-graph-api,facebook-javascript-sdk,Javascript,Facebook,Facebook Graph Api,Facebook Javascript Sdk,当今天发现新的bug时,它变得非常烦人 基本上我想做的是;显示Facebook对话框,获取应用程序和运行回调函数所需的权限。但无法实现这个简单且最重要的应用程序部分 首先,让我们初始化它: <div id="fb-root"></div> <script type="text/javascript"> window.fbAsyncInit = function() { FB.init({appId: '13581416985

当今天发现新的bug时,它变得非常烦人

基本上我想做的是;显示Facebook对话框,获取应用程序和运行回调函数所需的权限。但无法实现这个简单且最重要的应用程序部分

首先,让我们初始化它:

<div id="fb-root"></div>
<script type="text/javascript">

    window.fbAsyncInit = function()
    {

        FB.init({appId: '135814169854494', status: true, cookie: true, xfbml: true, oauth: true });

        FB.ui({method: "permissions.request", "perms": 'publish_stream,user_about_me,email,user_birthday,user_likes'} , function(response) { console.log(response); });

    };
    (function() {
        var e = document.createElement('script'); e.async = true;
        e.src = document.location.protocol +
        '//connect.facebook.net/<?=$__FBLocal?>/all.js';
        document.getElementById('fb-root').appendChild(e);
    }());
</script>
现在会显示Javascript弹出窗口,但若单击“确定”,转到“应用”按钮,它不会授予权限,甚至弹出窗口也不会消失。什么都没变!诡异的

如果您在Facebook开发者部分的高级应用程序设置中禁用增强身份验证对话框

弹出式样式更改:

单击“允许”按钮时,javascript错误抛出:FB.Auth.setSession与OAuth2不兼容

这是很常见的错误。我可以找到一些技巧来避免这个bug,但它们都不起作用。例如删除对all.js url的任何扩展(我没有),或者更改FB.init中的oauth参数,这些扩展不再解决任何问题-


所以,唯一的解决办法是——不幸的是——通过重定向将权限对话框嵌入到页面中。如果有人可以实现JS SDK权限对话框,请让我知道。Graph API页面中的文档太少了。

首先,我建议创建另一个facebook应用程序来获取新的facebook ID并使用它进行测试。如果它能工作,那么facebook存储的原始facebook应用程序数据中就有东西被破坏了。如果它不起作用,那么你就有了一个可复制的bug,你可以通过他们的bug跟踪工具向facebook报告。

我很确定permissions.request已被弃用。您是否可以尝试使用方法:oauth而不是permissions.request?此外,perms参数需要更改为scope。请参见

我以前尝试过,但也有几个应用程序出现问题/那么你就有了一个可重现的情况,需要尽快向Facebook报告:请在此处发布错误报告的链接。方法:oauth不适用于Javascript对话框。不幸的是,我转换成了弹出窗口。根据这个bug报告,他们说使用FB.login,而不是直接调用permissions.request或oauth对话框。