1

如何使用 php 检查 facebook 页面、组或人员是否存在?

罗伯特

4

5 回答 5

5

尝试使用 Facebook API (https://developers.facebook.com/docs/reference/php/)

$facebook->api('PAGEID or USERID here');

如果不存在,则 facebook 返回false.

有关示例 URL 列表,请参阅https://developers.facebook.com/docs/reference/api/

于 2012-07-05T07:20:19.970 回答
2

目前,如果您访问不存在的 facebook 页面,您会收到以下消息:

未找到您所请求的页面。 您可能单击了过期的链接或输入了错误的地址。一些网址区分大小写。

所以基本上你可以做一个:

$page = file_get_contents( 'http://www.facebook.com/no_real_page' );
$pos = strrpos( $page, 'The page you requested was not found' );
if ( $pos === true ) {
  // non existing page!
}

但是会有所不同,消息可能会发生变化,然后您将不会在该脚本上获得任何结果。所以最好把它放在一个你以后可以很容易改变的地方:

# config.php
define ( FACEBOOK_ERROR, 'The page you requested was not found' );

# script.php
$page = file_get_contents( 'http://www.facebook.com/no_real_page' );
$pos = strrpos( $page, FACEBOOK_ERROR );
if ( $pos === true ) {
  // non existing page!
}
于 2012-07-05T07:29:30.567 回答
1

Facebook 不支持file_get_contentscUrl如前所述Dainis Abols

该代码对于其他网站检查是否存在任何内容很有用。但 Facebook 与其他网站有很大不同。

<?php
$page = file_get_contents('http://www.facebook.com/pages/Studentmug/349363763205');
$pos = strrpos( $page, 'The page you requested was not found' );
echo "$page";
if ( $pos === true ) {
  // non existing page!
}
?>
于 2012-07-05T07:41:54.877 回答
-1

您需要用户/组的 facebook_id 或 url。然后使用 curl,您可以查找返回的状态代码。404 表示,它不存在。

http://php.net/manual/en/book.curl.php

于 2012-07-05T07:18:10.013 回答
-2

好的,感谢 Gabriel Santos 和 Jeff,这就是我最终得到的结果:

// A function to check if a facebook page exists 
// and if its a personal or published page  
function CheckFB($fbexist) { // $fbexist is the pageID or userID
    require_once("include/facebook.php"); // Facebook php-sdk

                // Install and Initialize
    $config = array();
    $config['appId'] = 'APP_ID/KEY';
    $config['secret'] = 'APP_SECRET';

          // Create Facebook object
    $facebook = new Facebook($config);

    try {
        $facebook->api($fbexist);
        if (!$facebook->api($fbexist)) {  // if this returns false
            $personal = "No";       // it's not a personal page
        } else {                          // or group
            $personal = "Yes";
        }

    } catch(FacebookApiException $e) {           // If there is an exception
        $checked = array(false, $personal);// the page doesn't exist
        return $checked;
    }
          $checked = array(true, $personal);
    return $checked;
}

再次感谢你们的帮助:)

于 2012-07-05T10:42:13.483 回答