我正在构建一个iframe应用程序,它将提供Facebook页面的一些提及。我的应用程序将被添加到具有不同名称的多个页面。我需要的是这样的东西..有没有办法用PHP获取Facebook页面的名字?
$page_name = "Bob's Toys";
Thank you for visiting the <?php echo $page_name; ?> page!
有没有办法做到这一点?
我正在构建一个iframe应用程序,它将提供Facebook页面的一些提及。我的应用程序将被添加到具有不同名称的多个页面。我需要的是这样的东西..有没有办法用PHP获取Facebook页面的名字?
$page_name = "Bob's Toys";
Thank you for visiting the <?php echo $page_name; ?> page!
有没有办法做到这一点?
是的。解码通过Facebook发送到页面的signed_request。
if (!empty($_REQUEST['signed_request'])) {
$signedRequest = $_REQUEST['signed_request'];
list($sig, $payload) = explode('.', $signedRequest, 2);
$data = json_decode(base64_decode(strtr($payload, '-_', '+/')), true);
}
从这里,你可以得到页面的ID。
array (size=4)
'algorithm' => string 'HMAC-SHA256' (length=11)
'issued_at' => int 1321635439
'page' =>
array (size=3)
'id' => string '19292868552' (length=15)
'liked' => boolean false
'admin' => boolean true
'user' =>
array (size=3)
'country' => string 'gb' (length=2)
'locale' => string 'en_US' (length=5)
'age' =>
array (size=1)
'min' => int 21
然后你可以使用图形API返回的页面对象,应该是这样的:https://graph.facebook.com/19292868552
谢谢Moz。我需要得到的是页面的名称,而不是id。 'if(!empty($ _ REQUEST ['signed_request'])){ $ signedRequest = $ _REQUEST ['signed_request']; list($ sig,$ payload)= explode('。',$ signedRequest,2); $ data = json_decode(base64_decode(strtr($ payload,'-_','+ /')),true); } echo $ signed_request ['page'] ['id'];' 但是当我echo $ signed_request ['page'] ['name'];'我什么都没有。 – Dustin
然后,您可以使用该id来执行对Graph API的请求以获取页面对象 - 请参阅我的答案末尾处的位:) –
对不起......我对这一切都很陌生。我将如何从图表中拉出名字?感谢您的帮助:) – Dustin
刚刚得到的页面ID,查询只name
场图。是这样的:
<?php
$signed_request = $_REQUEST["signed_request"];
list($encoded_sig, $payload) = explode('.', $signed_request, 2);
$data = json_decode(base64_decode(strtr($payload, '-_', '+/')), true);
if (!empty($data["page"])) {
$page_info = json_decode(file_get_contents("https://graph.facebook.com/{$data['page']['id']}?fields=name"));
echo $page_info->name;
}
?>
你可以试试这个:
$page_profile = $facebook->api('/' . $pageid);
echo "<a href='" . $page_profile['link'] . "'>" . $page_profile['link'] . "</a>";
这不会实现OP所要求的。 – Florent
这个工作对我来说
$ page_profile = $ facebook-> API( '/' $的pageid);
$ page_name = $ page_profile ['name'];
考虑添加解释。否则,可能对其他人读这个。 –
你是说你想让应用知道关于包含Facebook的页面吗?你的小代码示例并没有真正解释它。而通过“网页名称”,你的意思是字面上的标题? – Tesserex
是的,我需要页面标题。 – Dustin