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

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

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

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

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

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

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

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

http://www.facebook.com/marinecorps

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

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

Идентификатор страницы включен в подписанный запрос. Здесь обновленная версия сообщения пользователя byron для обновления страницы в 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); } 

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

 $pages = $facebook->api(array( 'method' => 'fql.query', 'query' => 'SELECT page_id FROM page_admin WHERE uid = '.$uid.'' )); 

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

goto http://www.facebook.com/insights/ после того, как вы вошли в свою facebook

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

(Я видел это на форуме 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; } 

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

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

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

$ 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; }