Получить идентификатор фан-страницы Facebook

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

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

9 ответов

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

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

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

ID 105665906133609

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

http://www.facebook.com/marinecorps

Таким образом, идентификатор морской пехоты

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

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

$facebook = new Facebook();

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

echo 'page id is ' . $page_id . ' AAAAAAAAAAWWWWWWW YYYYYYEEEEEEEEAAAAAAAAAAAA!';

Это работает, используя новый 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);
}

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

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

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

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

$ 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/

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

Вот рабочее решение, которое требует только ввода 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;
}
$pages = $facebook->api(array(
'method' => 'fql.query',
'query' => 'SELECT page_id FROM page_admin WHERE uid = '.$uid.''
));

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

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

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

(Я видел это на форуме Facebook)

Вот список функций, которые вы можете добавить в 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;
}
Другие вопросы по тегам