13

I've got the Facebook user ID of the user who created a given page. Now I need to get the page ID to display like box in my website.

Different users have their own Facebook pages; however, I know how to get their Facebook user IDs

4

9 回答 9

13

您可以将 www 替换为页面 URL 中的图形。例如可口可乐页面http://graph.facebook.com/cocacola的 id (第一个值)。

于 2011-09-03T21:31:56.153 回答
5

粉丝页面的 URL 将包含 ID。例如,Stack Overflow 粉丝页面

http://www.facebook.com/pages/Stack-Overflow/105665906133609

ID是105665906133609

有些页面有别名,也可用作 ID。例如,海军陆战队的粉丝页面是

http://www.facebook.com/marinecorps

所以ID是海军陆战队

或者,您也可以使用文档页面上的生成器。

于 2010-06-28T18:13:25.180 回答
2

页面 ID 包含在签名请求中。这里是 facebook 页面更新的 byron 帖子的更新版本。

$facebook = new Facebook();

$signed_request = $facebook->getSignedRequest();
$page_id = $signed_request['page']['id'];

echo 'page id is ' . $page_id . ' AAAAAAAAAAWWWWWWW YYYYYYEEEEEEEEAAAAAAAAAAAA!';
于 2011-02-23T22:04:42.273 回答
1

这可以使用新的 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?

于 2011-01-05T21:02:42.543 回答
0

我假设您是用户,并且您想要您是管理员的页面的页面 ID。

获取 id 相当简单。

首先,您需要获取与用户 id 关联的所有页面的列表:

$fanpages = $facebook->api('me/accounts?access_token='.$accessToken);

然后你会做一个循环,如:

foreach ($fanpages['data'] as $fanpage)
{
echo "<br />Fan Page Name: ".$fanpage['name'] . " ID: ".$fanpage['id'];
}

这将列出与 id 关联的所有页面。

有关 $fanpage 数组元素的完整列表,请查看此处:

https://developers.facebook.com/docs/reference/api/page/

于 2012-12-19T00:47:20.417 回答
0
$pages = $facebook->api(array(
'method' => 'fql.query',
'query' => 'SELECT page_id FROM page_admin WHERE uid = '.$uid.''
));

$uid 是 FB 用户的个人资料 ID#!使用 PHP SDK 进行 Fql 查询

于 2010-12-31T23:24:59.060 回答
0

登录 Facebook 后转到http://www.facebook.com/insights/

按右上角的绿色按钮(“洞察您的域”)为您的页面选择下拉值瞧,您会看到 page_id

(我在脸书论坛看到这个)

于 2011-01-02T21:42:12.393 回答
0

以下是您可以在 facebook sdk 中添加的功能列表。适用于图形 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;
}
于 2011-07-21T15:09:03.657 回答
0

这些答案似乎不再起作用,因为图表现在需要一个访问令牌来处理大多数请求(如果不是全部请求)。

这是一个工作解决方案,只需要输入 facebook 页面 URL。

它的作用是将 facebook 页面作为 HTML 接收,并通过(通过正则表达式)查找entity_id具有数值的 JSON。该值是页面的 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;
}
于 2016-02-17T19:53:03.430 回答