Php 获取Facebook粉丝页面ID
我已经获得了创建给定页面的用户的Facebook用户ID。现在我需要让页面ID在我的网站中像方框一样显示Php 获取Facebook粉丝页面ID,php,facebook,facebook-graph-api,Php,Facebook,Facebook Graph Api,我已经获得了创建给定页面的用户的Facebook用户ID。现在我需要让页面ID在我的网站中像方框一样显示 不同的用户有自己的Facebook页面;但是,我知道如何获取他们的Facebook用户ID。粉丝页面的URL将包含该ID。例如,堆栈溢出风扇页面 http://www.facebook.com/pages/Stack-Overflow/105665906133609 身份证号码是10566590613609 有些页面有别名,也可用作ID。例如,海军陆战队的风扇页面是 http://www.f
不同的用户有自己的Facebook页面;但是,我知道如何获取他们的Facebook用户ID。粉丝页面的URL将包含该ID。例如,堆栈溢出风扇页面 http://www.facebook.com/pages/Stack-Overflow/105665906133609 身份证号码是10566590613609 有些页面有别名,也可用作ID。例如,海军陆战队的风扇页面是 http://www.facebook.com/marinecorps 所以身份证是海军陆战队 或者,也可以在上使用生成器 $uid是FB用户的配置文件id!登录facebook后使用PHP SDK进行Fql查询 按右上角的绿色按钮查看您的域 选择页面的下拉值 瞧,你看到页面了吗
我在facebook论坛上看到了这个它使用新的php sdk工作
$page_id = null;
$facebook = new Facebook();
try {
$signed_request = $facebook->getSignedRequest();
$page_id = $signed_request['profile_id'];
} catch (FacebookApiException $e) {
error_log($e);
}
请注意,我对此感到不安,因为我实际上要查找的是页面创建者的用户id,因为我需要在选项卡上显示该用户创建的内容。这曾经是可能的,但我认为现在已经不可能了。kasun,你如何获得页面创建者的id?页面id包含在已签名的请求中。这里是拜伦发布的facebook页面更新的最新版本
$facebook = new Facebook();
$signed_request = $facebook->getSignedRequest();
$page_id = $signed_request['page']['id'];
echo 'page id is ' . $page_id . ' AAAAAAAAAAWWWWWWW YYYYYYEEEEEEEEAAAAAAAAAAAA!';
以下是您可以在facebook sdk中添加的函数列表。 适用于graph api和rest api
/*
Custom functions to get fan page related information
*/
function getSignedData()
{
if(isset($this->signedData) && !empty($this->signedData))
return $this->signedData;
if(!isset($_REQUEST["signed_request"]))
return false;
$signed_request = $_REQUEST["signed_request"];
if(empty($signed_request))
return false;
list($encoded_sig, $payload) = explode('.', $signed_request, 2);
$data = json_decode(base64_decode(strtr($payload, '-_', '+/')), true);
if(empty($data))
return false;
$this->signedData = $data;
return $data;
}
/*
Return fan page id, Only return fanpage id for 1st (landing) page of application.
*/
function getFanPageId()
{
if(!$data = $this->getSignedData())
{
return false;
}
if(isset($data["page"]["id"]))
return $data["page"]["id"];
return false;
}
/*
Only returns userid, if user has authenticated application
*/
function getFanPageUserId()
{
if(!$data = $this->getSignedData())
{
return false;
}
if(isset($data["user_id"]))
{
return $data["user_id"];
}
return false;
}
/*
Check if visiting user is fan page admin
*/
function checkFanPageAdmin()
{
if(!$data = $this->getSignedData())
return false;
if(isset($data["page"]["admin"]) && $data["page"]["admin"] == 1)
return true;
return false;
}
您可以将www替换为页面URL中的图形。例如,Coca-Cola页面第一个值的id。我假设您是用户,并且您想要您是其管理员的页面的页面id 获取id相当简单 首先,您需要获得与用户id关联的所有页面的列表: $fanpages=$facebook->api'me/accounts?访问令牌='。$accessToken 然后执行如下循环:
foreach ($fanpages['data'] as $fanpage)
{
echo "<br />Fan Page Name: ".$fanpage['name'] . " ID: ".$fanpage['id'];
}
这将列出与该id关联的所有页面
有关$fanpage数组元素的完整列表,请查看以下内容:
这些答案似乎不再有效,因为图形现在需要对大多数(如果不是所有)请求使用访问令牌 这里有一个可行的解决方案,只需要输入facebook页面URL 它的作用是以HTML形式接收facebook页面,并通过hvia regex查找具有数值的JSON实体id。此值是页面的ID。由于页面内容可能会更改,因此此解决方案肯定不能保证永远有效
/**
* @param string $facebookUrl
* @return null|string
*/
function get_facebook_id($facebookUrl)
{
$facebookId = null;
$fbResponse = @file_get_contents($facebookUrl);
if($fbResponse)
{
$matches = array();
if (preg_match('/"entity_id":"([0-9])+"/', $fbResponse, $matches))
{
$jsonObj = json_decode("{" . $matches[0] . "}");
if($jsonObj)
{
$facebookId = $jsonObj['entity_id'];
}
}
}
return $facebookId;
}
有什么方法可以获得fanpage id吗?我只需要获得fanpage id,我知道创建页面的用户id。plz我需要帮助我已经尝试过了,没有办法通过creater id获得fanpage id,最后我从喜欢页面的用户那里获得id,creater也需要喜欢该页面你根本不需要使用创建者的id。我不知道你要去哪里。很高兴知道你可以得到这样的信息,但我没有看到任何地方,它列出了网页信息。这里还有其他需要采取的步骤吗?很好的链接,可以知道页面的任何页面id+1谢谢
/**
* @param string $facebookUrl
* @return null|string
*/
function get_facebook_id($facebookUrl)
{
$facebookId = null;
$fbResponse = @file_get_contents($facebookUrl);
if($fbResponse)
{
$matches = array();
if (preg_match('/"entity_id":"([0-9])+"/', $fbResponse, $matches))
{
$jsonObj = json_decode("{" . $matches[0] . "}");
if($jsonObj)
{
$facebookId = $jsonObj['entity_id'];
}
}
}
return $facebookId;
}