如何使用新的Graph API在FB中显示扩展权限对话框?

mur*_*lai 5 authentication facebook oauth

我之前用旧的rest api在Facebook上显示了Permission Dialog.现在,使用新的图形API,我该怎么办?(我在IFrame应用程序中).

我知道我可以在一个单独的窗口中作弊并弹出权限:

FB.login(function(response) {
                  if (response.session) {
                    if (response.perms) {
                      // user is logged in and granted some permissions.
                      // perms is a comma separated list of granted permissions
                    } else {
                      // user is logged in, but did not grant any permissions
                    }
                  } else {
                    // user is not logged in
                  }
                }, {perms:'offline_access'});
Run Code Online (Sandbox Code Playgroud)

那样..再次调用FB.login(假设我希望人们点击不同的按钮并触发扩展的permisison对话框)

但是,它看起来很丑陋,看起来不像是一个对话框.

有没有办法生成对话框?我试着弄清楚FB.ui是否能提供帮助,但关于这一点的信息很少.

另外,我认为'响应'回调不会执行.我没有点击"不允许"或"允许",也不会触发任何回叫.任何的想法?

嗨.任何人都可以帮助我吗?

mur*_*lai 21

最后.从另一个网站找出解决方案.第一.在FB.init之后(...); 去做:

FB.provide("UIServer.Methods",
    { 'permissions.request' : { size : {width: 575, height: 300}, 
    url: 'connect/uiserver.php',
    transform : FB.UIServer.genericTransform }
    } );
Run Code Online (Sandbox Code Playgroud)

然后,每当您需要调用permssion对话框时,请执行以下操作:

FB.ui({method: "permissions.request", "perms": 'email,offline_access'}, 
    callBack);
Run Code Online (Sandbox Code Playgroud)

我花了很长时间才弄清楚通过查看FB对象并找出UIServer with permissions.request然后从那里,我一直在寻找并找到这个解决方案.和FB.ui没有谈论它..并且没有记录FB.provide.谢谢你的脸书.