如何使用Graph API和PHP为Facebook页面(Tab)应用添加管理/设置页面?

时间:2011-11-28 13:10:59

标签: php facebook facebook-graph-api

我一直在搜索StackOverflow和Google搜索结果以找到这个,但没有运气筛选所有信息。

我为Facebook页面制作了一个应用程序,作为标签添加。该应用程序的设置需要根据其添加的Facebook页面进行设置 - 该ID用于匹配应用程序中显示的数据和模板。但是,我无法获取有关页面ID的信息以及用户是否是我应用中页面的管理员。

我正在使用Facebook的PHP SDK,但即使是示例也似乎已被弃用,因为Facebook已转移到他们的Graph API。而且我无法在任何地方找到有关如何请求信息的示例代码或文档。

这是我的代码(使用sdk 3.1.1):

require_once 'inc/facebook-php-sdk/src/facebook.php';
$fb_app_id = "............";
$fb_app_secret = "...................";


$facebook = new Facebook(array(
        'appId' => $fb_app_id,
        'secret' => $fb_app_secret,
        'cookie' => true
));


// Facebook magic sauce...
$fb_signed_request = $facebook->getSignedRequest();

$fb_page_id = $fb_signed_request["page"]["id"];
$fb_like_status = $fb_signed_request["page"]["liked"];
$fb_is_admin = ($fb_signed_request["page"]["admin"]==1)?TRUE:FALSE;

当管理员(我)首次访问该页面时,我将'admin'参数设置为1,但是当我点击应用程序中的任何链接(iframe)时,信息不会传递,所以如果我链接到一个管理页面,它将评估为false。

关于这个主题的所有信息都是针对弃用的方法,我甚至无法弄清楚它如何与Graph API一起使用。我真的很感激一些帮助,甚至只是朝着正确的方向发展......

1 个答案:

答案 0 :(得分:0)

我不是100%肯定你想要的东西,但是:

  1. 如果您想在应用中使用不同的用户级别(例如管理员,主持人,用户),那么最好使用存储uder_id +级别的数据库,然后设置php会话变量。

  2. 执行fb_signed_request的var_dump,您是否在admin下看到任何值?