Pregunta

Tengo una aplicación que utiliza el viejo Friends.getAppUsers llamada a la API REST para obtener la lista de amigos del usuario actual que han autorizado a mi solicitud.

He leído la documentación, ¿cómo puedo hacer esto con la API de gráficos? ¿Cuál sería un ejemplo de esto ser?

¿Fue útil?

Solución 5

He hecho muchas investigaciones sobre este tema. De lo que puedo decir, no hay manera de hacerlo Friends.getAppUsers usando Graph API. Los últimos SDK proporcionados por Facebook todo el uso de la antigua API REST para conseguir amigos usando la aplicación.

Otros consejos

He buscado por un tiempo, y yo también pensé que esto no era posible utilizando Graph API.

Sin embargo, he publicado una pregunta similar, para los viejos llaman a GetAppUsers ver a los amigos de un usuario que utiliza mi solicitud? , para la API específica que estaba usando y se le dio una gran respuesta general.

https://graph.facebook.com/me/friends?fields=installed

o más generalmente

https://graph.facebook.com/{user id}/friends?fields=installed

Esto devuelve todos los amigos, con el campo adicional "instalado = true" para los amigos que utilizan la aplicación.

Aquí está funcionando en el Graph API Explorador :

Esto se puede hacer con FQL.

SELECT uid FROM user
WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = ?)
AND is_app_user = 1

QED!

Sí, el API de gráficos es horriblemente documentados. No veo ninguna documentación para una "solicitud" tipo , pero lo hacen hacer referencia a información de una aplicación en la documentación:

https://graph.facebook.com/2439131959

Así que, tal vez usted puede conseguir que los miembros de la aplicación utilizando la sintaxis Grupo?

https://graph.facebook.com/2439131959/members

se necesita de una sesión autenticada para probarlo. De lo contrario, parece que Facebook nos empuja a utilizar FQL para enviar consultas directamente:

http://developers.facebook.com/docs/reference/fql/application

Se puede ejecutar consultas por FQL atractivo https://api.facebook.com/method/fql.query?query= CONSULTA. Se puede especificar un formato de respuesta XML o JSON con el formato consulta de parámetros.

Así se puede pasar una consulta FQL para obtener información acerca de su aplicación.

API REST antigua:

$facebook->api_client->friends_getAppUsers();

Nueva Graph API:

$facebook->api(array('method' => 'friends.getAppUsers'));

restFB , hice lo siguiente (gracias Igy / Alex de la guía). Tenga en cuenta que Facebook devuelve una matriz de ID amigo con "instalado" = true si se ha instalado el usuario (como puede verse aquí ).

Primera extender la clase de usuario, añadiendo un campo installed:

import com.restfb.Facebook;
import com.restfb.types.User;

public class InstalledUser extends User {

    @Facebook
    private boolean installed;

    public InstalledUser() {        
    }

    public boolean getInsatlled() {
        return installed;
    }
}

A continuación, utilizando la DefaultFacebookClient:

FacebookClient facebook = new DefaultFacebookClient(pFacebookAccessToken);
Connection<InstalledUser> installedFacebookUsers = facebook.fetchConnection("/" + pFacebookId + "/friends", InstalledUser.class, Parameter.with("fields", "installed"));        
for (List<InstalledUser> friends : installedFacebookUsers) {
    for (InstalledUser friend : friends) {
        if (friend.getInsatlled()) {
            // Add friend.getId() to a list of ID, or whatever
        }
    }
}

La solución consiste en hacer el filtrado a sí mismo. Es de suponer, que tiene todas las de UID de los usuarios que se han registrado para su aplicación sentado en su propia base de datos. Así que primero obtener fluidos de todos los amigos de los usuarios, y seleccione los usuarios de la base de datos que tienen los fluidos a juego.

El nuevo programa Graph API de Facebook parece muy mal ejecutado y no del todo pensado. Parece que corrieron a publicarla para Facebook f8 antes de que fuera maduro, y un montón de funcionalidad es perdido que estaba disponible antes.

Puede seguir llamando a los viejos de la API REST en la nueva API de gráficos. Es decir prefectamenta válida.

Una forma alternativa es utilizar FQL para obtener los amigos del usuario de la aplicación.

No estoy seguro de si hay una manera de hacer esto utilizando sólo Graph API.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top