如何添加一个管理/设置页面的Facebook页面(标签)应用程序,使用图形API和PHP


How to add an admin/settings page for a Facebook Page (Tab) App, using the Graph API and PHP?

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

我做了一个应用程序的Facebook页面,被添加为一个选项卡。该应用程序有一个设置,需要设置每个Facebook页面,它被添加到-一个ID,以匹配哪些数据和模板呈现在应用程序中。然而,我无法获得关于页面ID的信息,以及用户是否是管理员在我的应用程序的页面。

我正在使用Facebook的PHP SDK,但即使是在那里的例子似乎被弃用,因为Facebook的移动到他们的图形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一起工作的流程。我真的很感激你的帮助,甚至只是一个正确的方向。

我不是100%确定你想要什么,但是:

  1. 如果你想在你的应用程序中不同的用户级别(如admin, moderator, user),那么你最好使用一个存储uder_id + level的数据库,然后设置一个php会话变量。

  2. 对fb_signed_request进行var_dump,你能在admin下看到任何值吗?