有没有办法用PHP获取Facebook页面的名称?

时间:2011-11-18 16:33:52

标签: php facebook

我正在构建一个iframe应用程序,其中会有一些关于Facebook页面的提及。我的应用程序将添加到具有不同名称的多个页面。我需要的是这样的......

$page_name = "Bob's Toys";

Thank you for visiting the <?php echo $page_name; ?> page!

有办法做到这一点吗?

4 个答案:

答案 0 :(得分:5)

是的。解码通过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

然后您可以使用Graph API返回如下所示的页面对象:https://graph.facebook.com/19292868552

答案 1 :(得分:1)

只需获取网页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;
}
?>

答案 2 :(得分:0)

你可以试试这个:

$page_profile = $facebook->api('/' . $pageid);
echo "<a href='" . $page_profile['link'] . "'>" . $page_profile['link'] . "</a>";

答案 3 :(得分:0)

这对我有用

$ page_profile = $ facebook-&gt; api('/'。$ pageid);

$ page_name = $ page_profile ['name'];