Korzystając z Facebooka Graph API, biorąc pod uwagę nazwę użytkownika xyz (zakładając, że uwierzytelniła moją witrynę), w jaki sposób mogę uzyskać listę wszystkich stron Facebooka, którymi administruje użytkownik?Facebook Graph API + Facebook Pages
Odpowiedz
Znalazłem odpowiedź, trzeba użyć FQL, przechodząc w odpowiednim access_token:
@rmorrison - To nie jest wykres API chociaż. Za pomocą nowego "podobnego" dodatku możesz użyć tego adresu URL: h ttps: //graph.facebook.com/me/likes? Access_token = blah! lub h ttps: //graph.facebook.com/USER_ID/likes? access_token = blah!
Obiekt accounts
na obiekcie user
mówi:
Strony Facebook posiadane przez bieżącego użytkownika. Jeśli przyznano uprawnienie manage_pages, to połączenie zapewnia również access_tokens, które mogą być używane do wysyłania zapytania do Graph API w imieniu strony.
Ooh to musi być nowe ... nigdy wcześniej nie zauważyłem tego połączenia! Chociaż nie jestem pewien, czy to właściwa odpowiedź. Możesz być administratorem na stronie, nie będąc "właścicielem". –
Wygląda mi to na właściwą odpowiedź, zwraca wszystkie strony, na których jestem administratorem, nawet te, których sam nie stworzyłem. – dar
Po otrzymaniu token dostępu można uzyskać wszystkie szczegóły wykaz wszystkich stron facebook że użytkownik zarządza.
https://graph.facebook.com/[FACEBOOKUSERID]?metadata=1&access_token=
Wyjście będzie wyglądać
{
"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"
}
}
}
Widziałem tu twoje "metadane" przez przypadek, a na końcu znalazłem sposób na znalezienie połączeń z Obiektem Użytkownika - tylko nie można się zastanawiać, dlaczego wzmianki o tym zbiorze metadanych nigdzie nie można znaleźć na oficjalnych dokumentach fb (przynajmniej nie, jeśli nie wiesz, czego szukać). ty, chociaż mój problem był tylko zdalnie podłączony. – kontur
Dobrze jest usłyszeć, że problem został rozwiązany. Witamy. – PrateekSaluja
FQL jest najlepszym sposobem, aby uzyskać stron użytkownika dla którego jest administratorem. Jak inni lubią użytkowników daje wszystkie strony, które lubi użytkownik.
Oto, czego używam. Działa idealnie
$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/>';
}
To oczywiście po utworzeniu sesji dla użytkownika fb! Numer $uid
będzie numerem identyfikacyjnym profilu konkretnego użytkownika Facebooka, do którego zwrócisz listę stron zarządzanych.
Użyj zapytania fql! To jest najlepszy sposób na uzyskanie stron, dla których użytkownik jest administratorem. Będziesz także mógł ograniczyć nazwy również. tj. strony z pustymi nazwami Przykładowe zapytanie fql, które zawiera również szczegóły strony.
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 - identyfikator administratora
UWAGA Metoda ta nie będzie działać z wersją 2.1 wykresu api jak FQL została zaniechana z tej wersji począwszy
access_token jest ważna na godzinę lub krócej. Co powinien zrobić ktoś, aby uzyskać szczegóły nawet po tym. Starałem się doprowadzić uzyskać wynik od
To działało przez godzinę lub tak, ale jak mogę uzyskać wynik po godzinie ... bez wchodzenia do logowania.
Możesz uzyskać listę stron z prostego kliknięcia interfejsu API interfejsu Facebook Graph.
https://graph.facebook.com/{user-id}/accounts?access_token={access-token}
Wyświetli listę stron dla użytkownika, które utworzył.
Nie szuka "polubień", szuka stron administrowanych przez użytkownika. –
Czy wiesz, jak wykonać podobną akcję na stronie? – WoodenKitty