1

我已经创建了我的第一个 Facebook 应用程序,我需要获得 publish_stream 权限。我可以通过遍历获得的每个权限并查看它是否存在来轻松检查它,但是如果用户拒绝它,我可以使用 PHP 做什么?

该应用程序作为“画布应用程序”或其他名称嵌入在 facebook 中。我知道如何通过为登录 url 提供新权限来请求外部站点的更多权限,但我不知道我怎么可能在应用程序内做到这一点?

我已经用谷歌搜索和搜索,但我能找到的只是如何获取具有权限的登录 url。我什至尝试过,但什么也没发生,因为我已经登录了。

这是我试过的代码:

        $loginUrl = $facebook->getLoginUrl(array(
            'req_perms' => 'publish_stream,user_likes',
            'next' => $_SERVER['PHP_SELF'],
            'cancel_url' => $_SERVER['PHP_SELF'],
        ));

        echo "<a href='" . $loginUrl . "'>login</a>";
4

1 回答 1

0

我知道如何通过为登录 url 提供新权限来请求外部站点的更多权限,但我不知道我怎么可能在应用程序内做到这一点?

基本上是一样的——通过使用适当的范围参数调用 Auth 对话框。

您在示例代码中做错的只是您在应用程序的 iframe 中链接到对话框的 URL - 但 Auth 对话框不允许在 iframe 中显示。添加target="_top"到链接,然后验证对话框将实际显示。(您还必须将redirect_uri参数设置为您在 Facebook 上的应用程序的地址,例如https://apps.facebook.com/YOUR_APP_NAMESPACE。)

当然,您也可以使用FB.loginJS SDK 之外的替代方式——这会将 Auth 对话框显示为弹出窗口。

于 2012-08-10T08:26:21.180 回答