【问题标题】:How to check if a user has granted a certain set of permissions to my PHP app?如何检查用户是否已授予我的 PHP 应用程序的特定权限集?
【发布时间】:2011-12-12 17:25:59
【问题描述】:

基于this question,有没有办法检查用户是否已使用基于 PHP 的 Facebook SDK 向应用授予了特定权限集? 我浏览了 API,但找不到任何东西。

【问题讨论】:

标签: php facebook-graph-api


【解决方案1】:
$permissions = $facebook->api("/me/permissions");

然后使用 if 来检查你需要哪个权限

前:

if (array_key_exists('publish_stream', $permissions['data'][0])) {
    postToWall();
} else {
    //Does not have permission
}

如果您使用 FQL

$perms = $facebook->api(array(
    "method" => "fql.query",
    "query" => "SELECT read_stream,offline_access,publish_stream FROM permissions WHERE uid=me()"
        ));
echo "<ul>";
foreach ($perms[0] as $k => $v) {
    echo "<li>";
    if ($v === "1") {
        echo "<strong>$k</strong> permission is granted.";
    } else {
        echo "<strong>$k</strong> permission is not granted.";
    }
    echo "</li>";
}

http://www.masteringapi.com/tutorials/how-to-check-if-user-has-certian-permission-facebook-api/22/

【讨论】:

  • FQL 代码片段代码样式看起来很难看。你能否用正确的块缩进重新格式化它。在您喜欢的编辑器中编辑代码通常很容易,而您只需在整个代码片段中添加 4 个空格缩进并将其复制/粘贴到此处。
【解决方案2】:

这也适用于我,如果我没有访问令牌,但有用户 ID:

$isGranted = $facebook->api(array(
    "method"    => "users.hasAppPermission",
    "ext_perm"   => "publish_stream",
    "uid"       => $facebook_id
));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-17
    • 2021-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多