facebook - sirve - identificador del negocio del socio
Obtener ID de usuario de Facebook desde la ID de usuario con ámbito de aplicación (6)
Con la actualización de Facebook Graph API v1.0 a v2.0, Facebook está utilizando "ID de usuario con ámbito de aplicación", por lo que ya no puedo ver el ID de usuario "original" en mis aplicaciones.
Siempre usé las Actualizaciones en tiempo real y las llamadas a la API de gráficos como " https://graph.facebook.com/{postId}/comments " para analizar la actividad de los usuarios en la página de Facebook donde estaba la aplicación. Pero dado que estos datos contienen la identificación de usuario original, ¡ya no puedo hacer coincidir las actividades con mis usuarios registrados!
Entonces, ¿hay alguna forma de obtener el ID de usuario original de Facebook a partir de una ID de usuario con ámbito de aplicación? ¿O de otra forma?
EDITAR:
Terminé obteniendo los ID de ámbito de la aplicación para todos mis usuarios utilizando el método API mencionado aquí: https://stackoverflow.com/a/29154912/3432305 y los almacené en mi base de datos además de la ID anterior. Luego, cada vez que llegaba una RTU, para los "usuarios antiguos" comprobaba qué usuario tenía esta ID con el objetivo de la aplicación y procesaba la actualización. Al menos Facebook logró arreglar el error mencionado en los comentarios ( Obtener ID de usuario de Facebook desde el ID de usuario con alcance de la aplicación ) unos días antes de que la API v1.0 quedara obsoleta, por lo que para los nuevos usuarios de mis aplicaciones, funciona como un encanto. Hasta aquí...
De su conversación entre Johannes N.
¿Puedo obtener los id con alcance de la aplicación (para aplicaciones que poseo) a través de la identificación de usuario original? eso ayudaría también.
Para obtener identificadores con alcance de la aplicación del ID de usuario original, puede hacerlo fácilmente a través de:
https://graph.facebook.com/v2.0/?ids=http://www.facebook.com/USER_ID&access_token=ACCESS_TOKEN
Yo puedo usar el parámetro fields para devolver solo el id:
El beneficio de los ID en lugar de ID porque puede consultar múltiples ID:
* www se puede eliminar para minimizar el recuento de caracteres.
Para obtener identificaciones con alcance de la aplicación de nombre de usuario también se puede hacer fácilmente:
https://graph.facebook.com/v2.0/?ids=http://www.facebook.com/USERNAME&access_token=ACCESS_TOKEN
Encontré un sitio web que puede ayudarlo a obtener el ID de usuario de Facebook desde el ID de la aplicación.
Está aquí http://izitools.com/en/tool/get-facebook-id-from-scoped-id
API
hay un truco sucio para recuperar el ID de usuario original
http://graph.facebook.com/app-scoped-id esto devuelve la información pública de Facebook de la siguiente manera, {"id": "app-scoped-id", "first_name": "xxxx", "gender": " male "," last_name ":" yyyy "," link ":" https://www.facebook.com/zzzz "," locale ":" en_US "," name ":" xxxx yyyy "," username ": "zzzz"}
A continuación, realiza otra llamada gráfica de API con nombre de usuario http://graph.facebook.com/zzzz
Esto devolverá el ID de Facebook original y otra información pública, en lugar de ID de ámbito de la aplicación
no hay posibilidad (simple / obvia) de obtener una identificación de usuario real basada en una identificación de usuario con alcance de aplicación.
https://www.facebook.com/app_scoped_user_id/670839443061245
pregúntate por qué derivar de este enlace nombre de usuario a todos.
{
"id": "670839443061245",
"first_name": "Lucas",
"gender": "male",
"last_name": "Ou-Yang",
"link": "https://www.facebook.com/L",
"locale": "en_US",
"name": "Lucas Ou-Yang",
"username": "L"
}
No puede pasar de un ámbito determinado a real. Su mejor apuesta es convertirlos a todos. Es bastante fácil:
https://graph.facebook.com/?ids=REAL_ID&access_token=APP_ID|APP_SECRET
Aquí hay un código simple de Ruby que hace esto:
require ''open-uri''
require ''json''
json = JSON.load(open("https://graph.facebook.com/?ids=#{real_id}&access_token=#{FACEBOOK_APP_ID}|#{FACEBOOK_APP_SECRET}"))
scoped_id = /app_scoped_user_id//(/d+)///.match(json[real_id.to_s][''link''])[1]