Rozejrzałem się przez chwilę i też pomyślałem, że nie jest to możliwe przy użyciu Graph API.
Jednak wysłałem podobne pytanie, Zastąpienie starego połączenia GetAppUsers, aby zobaczyć znajomych użytkownika, którzy używają mojej aplikacji? , dla konkretnego interfejsu API, którego używałem, i otrzymałem świetną ogólną odpowiedź.
https://graph.facebook.com/me/friends?fields=installed
lub bardziej ogólnie
https://graph.facebook.com/{user id}/friends?fields=installed
Zwraca to wszystkich znajomych, z dodatkowym polem „installed = true” dla tych znajomych, którzy używają aplikacji.
Oto jak działa w Graph API Explorer :
/me/friends?fields=id,name,installed
, co zachowuje kolejność pól i standardowe informacje, które są zwracane bez?fields=
zdefiniowania (prawda na 2012/12/05).installed
nie jest prawdą). Musimy ręcznie sprawdzić, czyinstalled
pole istnieje dla każdego użytkownika.Można to zrobić za pomocą FQL.
CO BYŁO DO OKAZANIA!
źródło
me()
zamiast?Tak, Graph API jest okropnie udokumentowany. Nie widzę żadnej dokumentacji na „application” typu , ale robią odwoływać informacji danej aplikacji w docs:
https://graph.facebook.com/2439131959
Być może więc możesz pobrać członków aplikacji za pomocą składni Group?
https://graph.facebook.com/2439131959/members
Będziesz potrzebować uwierzytelnionej sesji, aby ją przetestować. W przeciwnym razie wygląda na to, że Facebook naciska na nas, abyśmy używali FQL do bezpośredniego wysyłania zapytań:
http://developers.facebook.com/docs/reference/fql/application
Możesz więc przekazać zapytanie FQL, aby uzyskać informacje o swojej aplikacji.
źródło
Stary interfejs API REST:
Nowy Graph API:
źródło
Przeprowadziłem wiele dochodzeń w tej sprawie. Z tego, co wiem, nie da się tego zrobić
Friends.getAppUsers
za pomocą Graph API. Najnowsze SDK dostarczane przez Facebooka używają starego interfejsu API REST, aby pozyskiwać znajomych za pomocą aplikacji.źródło
Używając restFB , wykonałem następujące czynności (dzięki Igy / Alex za wskazówki). Zauważ, że Facebook zwraca tablicę identyfikatorów znajomych z "installed" = true, jeśli użytkownik jest zainstalowany (jak widać tutaj ).
Najpierw rozszerz klasę User, dodając
installed
pole:Następnie, używając DefaultFacebookClient:
źródło
Sposób obejścia problemu polega na samodzielnym wykonaniu filtrowania. Przypuszczalnie wszystkie identyfikatory użytkowników, którzy zarejestrowali się w Twojej aplikacji, znajdują się we własnej bazie danych. Więc najpierw pobierz identyfikatory wszystkich znajomych użytkowników i wybierz użytkowników z bazy danych, którzy mają pasujące identyfikatory.
Nowy program Facebook Graph API wydaje się bardzo słabo wykonany i niezupełnie przemyślany. Wygląda na to, że spieszyli się z opublikowaniem go na Facebooku f8, zanim stał się dojrzały, i brakuje wielu funkcji, które były dostępne wcześniej.
źródło
Nadal możesz wywoływać stare interfejsy API REST w nowym interfejsie Graph API. To jest całkowicie ważne.
Alternatywnym sposobem jest użycie FQL w celu pozyskania znajomych użytkownika aplikacji.
Nie jestem pewien, czy istnieje sposób, aby to zrobić, używając tylko Graph API.
źródło