Używam Graph API.
Mam zalogowanego użytkownika i chcę odzyskać listę identyfikatorów stron wszystkich stron, których ten użytkownik jest administratorem.
Czy jest na to sposób? Dokumenty są dość złe - i okrągłe.
Używam Graph API.
Mam zalogowanego użytkownika i chcę odzyskać listę identyfikatorów stron wszystkich stron, których ten użytkownik jest administratorem.
Czy jest na to sposób? Dokumenty są dość złe - i okrągłe.
Odpowiedzi:
Jest to proste dzięki Graph API. Kroki:
manage_pages
pozwolenie od użytkownika (uprawnienia rozszerzone).Możesz przetestować tę procedurę w eksploratorze wykresów -> po prostu kliknij przycisk „Uzyskaj token dostępu” - > w sekcji „Rozszerzone uprawnienia” zaznacz „manage_pages” i prześlij. Otrzymasz JSON ze szczegółami strony administratora.
źródło
Rozwiązałem to za pomocą FQL:
FB.api({method: 'fql.multiquery', access_token: <access_token>, queries: { query1: 'select page_id from page_admin where uid = ' + <uid>, query2: 'select page_id, name, page_url from page where page_id in (select page_id from #query1)' } }, function(queries){ var pages = queries[1].fql_result_set; }}
źródło
Możesz zadzwonić,
FB.api(/me/accounts)
jeśli nie chcesz używać FQL.„konta” to połączenie obiektu użytkownika. Zobacz dokumentację tego @ http://developers.facebook.com/docs/reference/api/user
Oczywiście na Facebooku zawsze jest haczyk. W tej chwili ta metoda zwróci nie tylko strony, których użytkownik jest administratorem, ale także aplikacje, które zainstalował. Jestem prawie pewien, że NIE jest to zamierzone zachowanie - wydaje mi się, że pamiętam, jak używałem tego kilka miesięcy temu i otrzymałem tylko listę stron. Dokumentacja również nie wspomina o aplikacjach na tej liście.
Jest to jednak łatwy problem do rozwiązania - Facebook zwraca nazwę, kategorię i identyfikator dla każdej pozycji na liście, a każda aplikacja ma kategorię „Aplikacja”. Po prostu upewniam się, że wymieniam tylko elementy, których kategorią nie jest „Aplikacja”.
źródło
idź pod ten adres
Po prostu kliknij Uzyskaj token dostępu i przejdź do rozszerzonych uprawnień
Zaznacz pole wyboru manage_pages
i kliknij Uzyskaj token dostępu
Następnie w FQL zapisz to
Kliknij Prześlij. a otrzymasz wszystkie listy stron, które zalogowały się jako administrator
źródło
me/accounts
obsługujetype
parametr zapytania?Pytasz o pozwolenie z JavaScript SDK przy logowaniu
FB.login(function(){}, {perms:'manage_pages'});
a po zalogowaniu się możesz pobrać strony (i aplikacje) w następujący sposób:
FB.api('/me/accounts', function(response){ console.log(response); })
źródło
{perms: 'manage_pages'}
i{scope: 'manage_pages'}
?Możesz także użyć uprawnienia "pages_show_list", jeśli chcesz mieć tylko listę stron na Facebooku, których użytkownik jest administratorem.
Uprawnienie „manage_pages” poprosi użytkownika o pozwolenie na zarządzanie jego stronami, co może być zbyt uciążliwe w zależności od tego, do czego jest ono potrzebne.
źródło
Zwróć uwagę, że Twoje rozwiązanie zwraca zarówno Pages, jak i Applications . Jeśli wolisz Strony, możesz użyć FQL Multiquery z klauzulą „Typ nie równa się” w następujący sposób:
źródło
Pozwolenie
akcja
źródło
źródło
W nowym GRAPH API v3 z Javascriptem użyj pola „task” zamiast „perms”.
Zamiast szukać „ADMINISTER” w tablicy, poszukaj „ZARZĄDZAJ”.
Pełne informacje tutaj: https://developers.facebook.com/docs/pages/access-tokens
źródło