2010-06-09 9 views
7

Используя API-интерфейс Facebook, учитывая имя пользователя xyz (при условии, что он аутентифицировал мой сайт), как мне получить список всех страниц facebook, которыми управляет пользователь?Facebook Graph API + Facebook Pages

ответ

0

@rmorrison - Это не граф API, хотя. С новым дополнением «like» вы можете использовать этот URL-адрес: h ttps: //graph.facebook.com/me/likes? Access_token = blah! или h ttps: //graph.facebook.com/USER_ID/likes? access_token = blah!

+0

Он не ищет «любит», он ищет страницы, которыми управляет пользователь. –

+0

Вы знаете, как выполнять подобное действие на странице? – WoodenKitty

15

accounts свойство на user объекта говорит:

Страницы Facebook, принадлежащие текущему пользователю. Если разрешение manage_pages было предоставлено, это соединение также дает access_tokens, который может использоваться для запроса API Графа от имени страницы.

http://developers.facebook.com/docs/reference/api/user

+0

Ой, это должно быть новое ... никогда не замеченное это соединение раньше! Хотя, я не уверен, что это правильный ответ. Вы можете быть администратором на странице, не являясь «владельцем». –

+0

Он выглядит как правильный ответ на меня, он возвращает все страницы, на которых я являюсь администратором, даже те, что я сам не создал. – dar

5

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

https://graph.facebook.com/[FACEBOOKUSERID]?metadata=1&access_token= 

Результат будет выглядеть как

{ 
    "name": "Facebook Developer Garage Austin - SXSW Edition", 
    "metadata": { 
     "connections": { 
     "feed": "http://graph.facebook.com/331218348435/feed", 
     "picture": "https://graph.facebook.com/331218348435/picture", 
     "invited": "https://graph.facebook.com/331218348435/invited", 
     "attending": "https://graph.facebook.com/331218348435/attending", 
     "maybe": "https://graph.facebook.com/331218348435/maybe", 
     "noreply": "https://graph.facebook.com/331218348435/noreply", 
     "declined": "https://graph.facebook.com/331218348435/declined" 
     } 
    } 
} 
+0

Я случайно увидел ваши «метаданные» и, наконец, нашел, как найти соединения с объектами пользователя - просто не может не задаться вопросом, почему упоминание этой коллекции метаданных нигде не встречается в официальных документах fb (по крайней мере, нет, если вы не знаете, что искать). хотя моя проблема была только дистанционно. – kontur

+0

Его здорово услышать, что ваша проблема решена. Ваше приветствие. – PrateekSaluja

0

FQL это лучший способ, чтобы получить страницы пользователя, для которого он является администратором. Так как другие, как и пользователи, предоставят все страницы, которые понравятся пользователю.

1

Вот что я использую. Он отлично работает

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

foreach($pages as $k=>$v) { 
    echo 'page id#:'.$v['page_id'].'<br/>'; 
} 

Это, конечно, после того, как вы создали сеанс для пользователя fb! $uid будет идентификатором профиля # конкретного пользователя в facebook, для которого вы возвращаете список управляемых страниц.

4

Используйте запрос fql! Это лучший способ получить страницы, для которых пользователь является администратором. Вы также сможете ограничить имена. i.e страницы с пустыми именами Пример запроса fql, который также дает вам информацию о странице.

SELECT page_id,page_url,name,pic_square FROM page WHERE page_id IN (SELECT page_id FROM page_admin WHERE uid = " + **UserId** + ") and name!='' 

UserId - Идентификатор администратора

Примечание Этот метод не будет работать с версией 2.1 графа API, как FQL осуждался от той версии, начиная

-1

access_token действительна в течение часа или меньше. Что должен делать кто-то, чтобы получить детали даже после. Я пытался привести получить результат от

https://graph.facebook.com/v2.3/search?q=coffee&type=place&center=37.76,-122.427&distance=1000&access_token=xyz

Это работало в течение часа или около того, но как я могу получить результат уже через час ... не заходя для входа в систему.

0

Вы можете получить список страниц из простого Facebook Graph API Hit.

https://graph.facebook.com/{user-id}/accounts?access_token={access-token} 

Он предоставит список страниц для пользователя, которые он создал.