PHP - API de Facebook: alertando al usuario de un cambio ... bastante simple

Parecería que esto sería algo simple de hacer, pero parece que no puedo encontrar nada sobre cómo lograr esto en el foro de desarrolladores de Facebook, la API o Google. Estoy usando PHP SDK para escribir una aplicación simple que busca un cierto cambio con respecto al usuario actual (para no parecer misterioso, es solo que esta parte es irrelevante). Tan pronto como se detecte este cambio, quiero alertar de alguna manera al usuario actual sobre el cambio, pero no publíquelo en el muro del usuario, esta información debe permanecer confidencial, debe permanecer entre el usuario y la aplicación. De acuerdo con la documentación de la API de Facebook, las notificaciones se generan automáticamente, por lo que no tengo control sobre ellas, y parece que tampoco puedo hacer que el contador de marcadores se actualice automáticamente. Tengo problemas para que aumente cuando el usuario visita la aplicación. página de lienzo y ocurre algo, pero lo que quiero es alertar al usuario de un evento determinado sin requerir que el usuario visite realmente el lienzo de la aplicación.

preguntado el 16 de mayo de 11 a las 18:05

2 Respuestas

Yo te guiaría al Cuadro de diálogo de solicitud página porque es (se supone que es) el lugar correcto para buscar. Pero, como de costumbre, falta algo en la documentación.

De todos modos, lo que buscas es un solicitud generada por la aplicación:

<?php 

  $app_id = YOUR_APP_ID;
  $app_secret = YOUR_APP_SECRET;

  $token_url = "https://graph.facebook.com/oauth/access_token?" .
    "client_id=" . $app_id .
    "&client_secret=" . $app_secret .
    "&grant_type=client_credentials";

  $app_access_token = file_get_contents($token_url);

  $user_id = THE_CURRENT_USER_ID;

  $apprequest_url ="https://graph.facebook.com/" .
    $user_id .
    "/apprequests?message=’INSERT_UT8_STRING_MSG’" . 
    "&data='INSERT_STRING_DATA'&"  .   
    $app_access_token . "&method=post";

  $result = file_get_contents($apprequest_url);
  echo("Request id number: ", $result);
?>

Descrito en un " blog" en lugar de la documentación! y puede ser fuente en esto documento (gracias @Charles).

contestado el 16 de mayo de 11 a las 23:05

Por cierto, olvidé mencionarlo en mi publicación original, pero vi la solicitud generada por la aplicación en la documentación y no pude hacer que funcionara usando sus instrucciones (developers.facebook.com/docs/channels/#requests). En su lugar, intentaré lo que publicaste, tal vez algo estaba un poco mal (ya sea por su parte o por mí). ¡Gracias! - Charles

¡Ah! ¡Nunca lo había buscado allí! ¡Pensé que no lo mencionaban en la documentación! pero supongo que es el mismo código .. - ifaour

¿Este método buscará actualizaciones / cambios sin requerir que el usuario visite la página del lienzo de la aplicación? - Charles

@Charles: La verificación de actualizaciones depende de usted y de la implementación de su aplicación (trabajos cron, etc.) a menos que se trate de actualizaciones relacionadas con Facebook, entonces necesita la API en tiempo real. He visto que has aceptado la respuesta, ¿te importaría compartir con nosotros lo que estaba mal? y ¿cómo ayudó mi respuesta? - ifaour

Bueno, en primer lugar, su respuesta me hizo pensar en las "solicitudes generadas por la aplicación" nuevamente, lo que me llevó a esta pequeña línea compacta: $facebook->api("/me/apprequests", 'post', array('message'=> 'x', 'data' => 'comment')); Esto es bastante vergonzoso, así que no quise mencionarlo, pero espero que otros hayan cometido el mismo error que yo y esto les ayude: después de ver "Solicitudes 2.0" mencionado en algunos lugares, de repente recordé que apareció en Configuración de mi aplicación. Y efectivamente, la Configuración de la aplicación >> Avanzado >> Actualizar a Solicitudes 2.0 - fue deshabilitado. : \ No hace falta decir que me sentí tonto (léase "idiota"). - Charles

Estoy usando PHP SDK para escribir una aplicación simple que busca un cierto cambio con respecto al usuario actual (para no parecer misterioso, es solo que esta parte es irrelevante).

En realidad, eso no es del todo irrelevante, ya que los TOS de Facebook le impiden hacer esto en la mayoría de las situaciones, especialmente cuando se defiende, estados de relación, etc.

Tan pronto como se detecte este cambio, quiero alertar de alguna manera al usuario actual sobre el cambio, pero no publíquelo en el muro del usuario, esta información debe permanecer confidencial, debe permanecer entre el usuario y la aplicación.

Solicite su correo electrónico y envíelo de esa manera.

contestado el 16 de mayo de 11 a las 22:05

La idea del correo electrónico realmente me vino a la mente, puede que termine haciéndolo de esa manera. Además, como lo mencionaste, aparte de developers.facebook.com/policy ¿Hay algún otro término que deba leer como desarrollador (que me perdí)? - Charles

La documentación de Facebook es horrenda, y sus TOS no son una excepción a esto. Algunas cosas se pueden obtener de los foros de desarrollo, otras cosas de su contenido de ayuda / preguntas frecuentes que no son de desarrollo. - ceejayoz

Situaciones como las que mencionaste (amistades, estados de relación, etc.): ¿dónde dice que una aplicación no puede buscar estos cambios y es específica del usuario actual, los amigos del usuario actual o ambos? ¿Por qué Facebook permitiría que los desarrolladores tuvieran acceso a esta información pero no pudieran hacer nada con ella? - Charles

Facebook proporciona esos datos para una gran cantidad de usos válidos. Se puede usar de formas que violen los usos deseados de FB, lo que hará que se elimine su aplicación. Por ejemplo: allfacebook.com/defriended-facebook-iphone-2010-01 - ceejayoz

No forzar ningún límite o eliminar mi aplicación (esto ni siquiera se aplica a la aplicación que estoy desarrollando actualmente), pero el artículo al que vinculó menciona que "este desarrollador violó la sección 2 del acuerdo de desarrollador de la plataforma de Facebook que dice" no debe notificar a un usuario que alguien ha eliminado al usuario como amigo ”." Revisé la misma Política y no encontré ninguna mención de esta "sección 2" ni nada parecido. La única mención del uso de la información de los amigos del usuario es esta: "Los datos de los amigos de un usuario solo se pueden usar en el contexto de la experiencia del usuario en su aplicación". ¿Qué me estoy perdiendo? - Charles

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.