Получить идентификатор страницы поклонника Facebook - PullRequest
12 голосов
/ 28 июня 2010

У меня есть идентификатор пользователя Facebook пользователя, который создал данную страницу.Теперь мне нужно, чтобы идентификатор страницы отображался на моем веб-сайте в виде поля.

У разных пользователей есть свои страницы на Facebook;Тем не менее, я знаю, как получить их идентификаторы пользователей Facebook

Ответы [ 9 ]

13 голосов
/ 04 сентября 2011

Вы можете заменить www на график в URL страницы.Например, идентификатор страницы Coca-Cola http://graph.facebook.com/cocacola (первое значение).

4 голосов
/ 28 июня 2010

URL-адрес фан-страницы будет содержать идентификатор. Например, страница вентилятора переполнения стека

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

Идентификатор: 105665906133609

Некоторые страницы имеют псевдонимы, которые также могут использоваться в качестве идентификатора. Например, фан-страница Корпуса морской пехоты -

http://www.facebook.com/marinecorps

Таким образом, идентификатор marinecorps

В качестве альтернативы, вы также можете использовать генератор на странице документации .

2 голосов
/ 24 февраля 2011

Идентификатор страницы включен в подписанный запрос. Вот обновленная версия поста Байрона для обновления страницы Facebook.

$facebook = new Facebook();

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

echo 'page id is ' . $page_id . ' AAAAAAAAAAWWWWWWW YYYYYYEEEEEEEEAAAAAAAAAAAA!';
1 голос
/ 06 января 2011

это работает с использованием нового 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);
}

обратите внимание, что я расстроен, что это работает, потому что на самом деле я ищу идентификатор пользователя создателя страницы, так как мне нужно отображать контент, созданный этим пользователем, на вкладке. Раньше это было возможно, но я не думаю, что это больше. Касун, как ты узнал идентификатор создателя страницы?

0 голосов
/ 17 февраля 2016

Похоже, что эти ответы больше не работают, поскольку для графика теперь требуется токен доступа для большинства, если не для всех запросов.

Вот рабочее решение, которое требует только ввода URL страницы Facebook.

Это получает страницу facebook в виде HTML и просматривает (через регулярное выражение) JSON entity_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;
}
0 голосов
/ 19 декабря 2012

Я предполагаю, что вы являетесь пользователем и хотите указать идентификатор страницы, администратором которой вы являетесь.

Получить идентификатор довольно просто.

Сначала вам нужно получить список всех страниц, связанных с идентификатором пользователя:

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

Затем вы бы сделали цикл вроде:

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

Это будет список всех страниц, связанных с идентификатором.

Полный список элементов массива $ fanpage можно найти здесь:

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

0 голосов
/ 21 июля 2011

Вот список функций, которые вы можете добавить в Facebook SDK.Работает как для графа API и остальных 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;
}
0 голосов
/ 03 января 2011

Перейти http://www.facebook.com/insights/ после того, как вы вошли в свой Facebook

нажмите зеленую кнопку в правом верхнем углу («понимание вашего домена») выберите раскрывающееся значение для вашей страницы вуаля, вы видите page_id

(я видел это на форуме в фейсбуке)

0 голосов
/ 01 января 2011
$pages = $facebook->api(array(
'method' => 'fql.query',
'query' => 'SELECT page_id FROM page_admin WHERE uid = '.$uid.''
));

$ uid - идентификатор профиля пользователя FB!Fql-запрос с использованием PHP SDK

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...