如何使用 php 检查 facebook 页面、组或人员是否存在?
罗伯特
尝试使用 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/
目前,如果您访问不存在的 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!
}
Facebook 不支持file_get_contents
或cUrl
如前所述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! } ?>
您需要用户/组的 facebook_id 或 url。然后使用 curl,您可以查找返回的状态代码。404 表示,它不存在。
好的,感谢 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;
}
再次感谢你们的帮助:)