我的情况是用户可能已经对我的应用进行了基本访问的身份验证,但在某些页面上,我希望利用新的Open Graph API并能够将操作发布到他们的墙上。所以我试图检查他们是否给了我的网站这个权限,如果他们没有给他们一个添加该权限的选项。这是我的代码:
<?php
require 'fbphp/facebook.php';
// Create our Application instance (replace this with your appId and secret).
$facebook = new Facebook(array(
'appId' => '??????',
'secret' => '???????',
));
$permissions = $facebook->api("/me/permissions");
if( array_key_exists('publish_actions', $permissions['data'][0]) ) {
// Permission is granted!
echo "we have permission";
} else {
// We don't have the permission
echo "no perms";
$login_url = $facebook->getLoginUrl( array( 'scope' => 'publish_actions' ) );
echo 'Please <a href="' . $login_url . '">login.</a>';
}
?>
此代码目前正在执行的操作是当我单击登录链接时,它会直接重定向到同一页面而不提示权限(可能是因为我已经在技术上登录了?)。当然我还没有获得许可,所以我回到了第一个方位。
那么如何为已经登录的人提示权限?我正在使用在app角色中创建的测试用户,如果它有任何影响
答案 0 :(得分:0)
我也有这个问题。但在我的情况下,在我发布网站之前,我会像你一样测试所有内容,所以,试试这个。转到Facebook本身的测试用户帐户。然后转到帐户设置,然后转到应用程序设置(位于左侧栏)。从那里删除您的网站或应用程序,因此您将删除其权限。然后尝试再次访问您的应用,它现在将提示您获取新权限。