如何在JS SDK Auth请求中指定扩展权限

Pos*_*Guy 4 facebook

更新更清晰(希望:)):

与此页面相关,特别是SSO部分:http://developers.facebook.com/docs/authentication/

你有Facebook选择使用Facebook连接按钮(无论连接意味着现在Facebook对我来说是灰色的雾),或者只是将你自己的图像作为按钮滚动,然后点击调用FB.Login().

所以我尝试了facebook按钮路线,这将我带到一个完整的砖墙.我的意思是我可以让它工作,auth,登录,所有这些但我不知道如何使用按钮通过整个过程传递扩展权限:

window.fbAsyncInit = function () {
    FB.init({ appId: facebookApplicationID, status: true, cookie: true, xfbml: true });
    FB.Event.subscribe('auth.sessionChange', function (response) {
    ...rest of code
Run Code Online (Sandbox Code Playgroud)

好的,如何为此调用附加扩展权限?当然,如果使用Login(),你可以很容易地做到这一点,但为什么facebook不显示任何例子,或说明perms参数是否存在于使用该按钮的过程中的某个位置!

相关链接:http://forum.developers.facebook.com/viewtopic.php?pid = 248096#p248096

我甚至不知道为什么他们在这里有那个按钮,当我看起来像大多数人只是在Init中调用Login()时.我假设然后调用Login()仍然在cookie等方面管理SSO?

是否有人使用此按钮或你只是使用FB.Login()?

我在我们自己的托管网站上的iframe中运行这个...没有将代码嵌入到facebook网站本身(我相信它被称为canvas?).

Anu*_*rag 11

RTFM.是的,我的意思是友善.

Single Sign-on部分正下方是该Account Registration Data部分,我从那里复制粘贴.

<fb:login-button perms="email,user_birthday"></fb:login-button>
Run Code Online (Sandbox Code Playgroud)

  • 我已经阅读了这本手册好几天了...这真是令人困惑. (6认同)
  • 我可以向你保证,在今年宣布JavaScript SDK之前与Facebook集成是一件非常糟糕的事情.如果您熟悉以前的方法,您只能了解JS SDK为Web应用程序解决的问题.而downvote不是我的. (2认同)

jhc*_*hen 7

不确定你要在这里完成什么.如果你想获得有关你的用户的信息或代表他们在Facebook上采取行动,你需要用户告诉Facebook它可以这样做(这只需要发生一次),这就是你需要调用FB.login作为这里描述:http://developers.facebook.com/docs/reference/javascript/FB.login.

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:'read_stream,publish_stream,offline_access'});
Run Code Online (Sandbox Code Playgroud)

他们需要输入密码才能证明他们真正授权您的应用.如果需要扩展权限,FB.login中的第二个参数允许您执行此操作.

如果用户已登录到Facebook(例如在另一个选项卡中),则无需登录,应跳过登录屏幕.如果用户已登录已经授权您的应用程序,则无需调用FB.login.

在决定是否调用FB.login之前,请使用FB.getLoginStatus 检查用户的登录状态(和权限):http://developers.facebook.com/docs/reference/javascript/FB.getLoginStatus.