我一直在搜索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一起使用。我真的很感激一些帮助,甚至只是朝着正确的方向发展......
答案 0 :(得分:0)
我不是100%肯定你想要的东西,但是:
如果您想在应用中使用不同的用户级别(例如管理员,主持人,用户),那么最好使用存储uder_id +级别的数据库,然后设置php会话变量。
执行fb_signed_request的var_dump,您是否在admin下看到任何值?