Facebook Apps:其他权限

时间:2011-02-08 17:04:19

标签: facebook facebook-graph-api

我有一个工作的Facebook应用程序,大多数用户只会使用一次。通过Facebook工作流程,用户可以指示他们是否希望自己的墙壁被写入。基于此,我要么要求获得publish_stream权限。

稍后,一小部分用户会回来再次使用该应用。以前不想写在墙上的一些人(因此我没有要求发布流)现在想写在他们的墙上。

在用户授权应用后,如何申请其他权限?

同样,我如何查询用户列出他们已授予的权限?

2 个答案:

答案 0 :(得分:19)

就像向新fb:login-button添加新权限一样简单:

<fb:login-button scope="publish_stream">
  Let me write on your wall!
</fb:login-button>

例如,您在DIV中隐藏了上述内容,如果用户勾选了一个复选框,则会显示DIV并提示新的权限!

好的直播示例位于Facebook Test Console

  1. 点击登录以“添加”应用程序
  2. 然后点击examples
  3. fb.api下选择does-like
  4. 现在您可以看到即使在连接到应用程序(测试控制台应用程序)之后, 实际上还有另一个登录按钮来提示用户!

    修改
    要检查用户是否已授予您的应用程序权限,只需使用此FQL:

    SELECT read_stream,offline_access FROM permissions WHERE uid=me()
    

    这将返回如下内容:

    [
      {
        "read_stream": 1,
        "offline_access": 0
      }
    ]
    

    要测试它,只需使用早期发布的测试控制台。

    编辑2:
    要在没有XFBML或Javascript的情况下自己构建链接,您只需要添加scope参数以及其他权限(reference):

    https://www.facebook.com/dialog/oauth?
         client_id=YOUR_APP_ID&redirect_uri=YOUR_URL&scope=publish_stream
    

    或者如果您使用的是PHP-SDK

    $loginUrl = $facebook->getLoginUrl(array(
        "scope" => "publish_stream"
    ));
    

答案 1 :(得分:0)

前几天我正在看这个!如果您通读http://developers.facebook.com/docs/authentication,有几种不同的方式可以显示一个小弹出框来请求额外的权限。

我不确定它如何与Facebook App一起使用,但我知道在使用Facebook Connect的网站上,如果您尝试请求用户已经接受的权限,那么该页面会自动重定向回redirect_url你设定的。