example español ios facebook facebook-graph-api

ios - español - graph api v2 3 facebook



¿Cómo descubrir qué amigos aceptados invita con la API de Facebook? (1)

TLDR: guarda la respuesta de la invitación real que solicitan estos amigos

Por lo que yo entendí, la reference que proporcionaste:

Puede comenzar a solicitar invite_token s, que supongo que ya puede hacer.

Como respuesta, obtienes esto por invitable_friend :

{ "id": "AVlzYTkXshfBqLe58zR9tY5dZ7L0wltTUkWKT0Z5V87zkwv-39...", // Invite Token "name": "Guy Cross", "picture": { "data": { "is_silhouette": false, "url": "https://fbcdn-profile-a.akamaihd.net/hprofile-ak-prn1/t5.0-1/623782_622770420_2109148508_q.jpg" } } }

La página menciona anteriormente cómo hacer solicitudes en general:

FB.ui({method: ''apprequests'', message: ''YOUR_MESSAGE_HERE'', to: ''USER_ID, USER_ID, INVITE_TOKEN'' // It says invite token }, function(response){ console.log(response); });

Mire la línea con to : puede poner tokens de invitación allí.

Ahora la respuesta es así:

{ request: ''REQUEST_OBJECT_ID'' to:[array of USER_IDs] }

Ahí tienes tus ID de usuario.

Si vas más allá y necesitas más información o quieres ver quién aceptó, entonces tienes dos opciones:

  • puedes verificar si la identificación del usuario ha autorizado el juego
  • cuando el nuevo usuario inicia sesión, puede solicitar todas las solicitudes para este nuevo usuario. Allí puedes rastrear quién lo invitó. GET https://graph.facebook.com/me/apprequests?access_token=[USER ACCESS TOKEN]
  • guarda todos los datos (indicados en TLDR) y verifica cada vez que un nuevo usuario se une a su juego, si la nueva identificación de usuario se encuentra en su lista de solicitudes mencionadas.

Para verificar quién lo invitó, puede verificar el request_object_id con http://graph.facebook.com/{REQUEST_OBJECT_ID}?access_token=USER_ACCESS_TOKEN del usuario que recibe y la siguiente respuesta será:

{ "id": "REQUEST_OBJECT_ID", "application": { "name": "APP_DISPLAY_NAME", "namespace": "APP_NAMESPACE", "id": "APP_ID" }, "to": { "name": "RECIPIENT_FULL_NAME", "id": "RECIPIENT_USER_ID" }, "from": { "name": "SENDER_FULL_NAME", "id": "SENDER_USER_ID" }, "message": "ATTACHED_MESSAGE", "created_time": "2014-01-17T16:39:00+0000" }

si vas con el token de acceso de usuario del remitente obtienes esto:

{ "id": "REQUEST_OBJECT_ID", "application": { "name": "APP_DISPLAY_NAME", "namespace": "APP_NAMESPACE", "id": "APP_ID" }, "from": { "name": "SENDER_FULL_NAME", "id": "SENDER_USER_ID" }, "message": "ATTACHED_MESSAGE", "created_time": "2014-01-17T16:39:00+0000" }

Para evitar esto, puede especificar el ID de usuario del usuario que recibe y obtener la misma respuesta que la del receptor: https://graph.facebook.com/{REQUEST_OBJECT_ID}_{USER_ID}?access_token={APP_ACCESS_TOKEN}

Facebook API v2.0 introdujo el borde invitable_friends .

Una respuesta de ejemplo de una solicitud GET a este borde es:

{ "data": [ { "id": "AVkgK9fLFxasdvXNbDV_gYogR6lXa9SKLnH...", "name": "Anita Sujarit", "picture": { "data": { "is_silhouette": false, "url": "https://fbcdn-profile-a.akamaihd.net/hprofile-ak-prn2/t1.0-1/c0.0.50.50/p50x50/1470158_10201991701127909_302023572_t.jpg" } } } }

Mirando de cerca esa identificación, no es una identificación de usuario de Facebook normal. En cambio, es un token de invitación ; este token se pasa al cuadro de diálogo de solicitudes como un valor para el parámetro to .

El token de invitación, devuelto en cada uno de los objetos friend como el valor de un campo llamado id, es una cadena única (por usuario y por juego) de longitud variable. El token de invitación está sujeto a vencimiento y puede cambiar entre sesiones de juego. Por lo tanto, no es aconsejable almacenar en caché estos resultados o tratar de asignarlos a una persona determinada.

La ventaja de los friends ahora solo devuelve amigos que ya usan la aplicación

Mi problema es que ahora no tengo forma de hacer una referencia cruzada con los amigos que he invitado y que han aceptado.

Anteriormente, habría almacenado una identificación de amigos cuando les envié una invitación y, en algún momento posterior, verifiqué esto con una lista de amigos que jugaban, pero ahora esto no es posible por varias razones:

  • El token de invitación no está presente en el borde de los amigos
    • Y es dinámico de todos modos
  • La identificación de usuario normal no está presente en el borde invitable_friends.
  • Podría usar el nombre del usuario como clave, pero esto no es único.

Pregunta real: ¿Alguien ha ideado una forma de determinar, de los usuarios que han sido invitados, que han aceptado esa invitación por favor?