example - Facebook Graph API-Obtener ID desde la URL de la página de Facebook
pagination facebook graph api (6)
He visto esta pregunta, pero lo que quiero es diferente.
Quiero obtener el ID de Facebook no desde una URL general (y por lo tanto condicional si tiene el botón Me gusta o no). Quiero obtener una ID de Facebook con una página de Facebook usando Graph API.
Tenga en cuenta que las páginas de Facebook pueden tener varios formatos, como:
http://www.facebook.com/my_page_name
http://www.facebook.com/pages/my_page_name
http://www.facebook.com/my_page_ID
Sé que podría hacer algunas expresiones regulares para obtener el nombre my_page o my_page_ID, pero me pregunto si alguien sabe si GraphAPI admite lo que quiero.
Esta respuesta tiene en cuenta que una URL puede terminar con una barra diagonal, algo que las páginas de eventos de Facebook parecen tener ahora en sus URL.
function getId(url) {
var path = new URL(url).pathname;
var parts = path.split(''/'');
parts = parts.filter(function(part) {
return part.length !== 0;
});
return parts[parts.length - 1];
}
La respuesta a la pregunta se publicó anteriormente, pero el método que se muestra a continuación funciona bien, no es necesario que regex
la regex
en las URL de la página de Facebook.
Obtuve la respuesta por este método
FB.api(''/any_fb_page_url'', function(response){
console.log(response);
});
any_fb_page_url puede ser cualquiera de los siguientes tipos
https://www.facebook.com/my_page_name
https://www.facebook.com/pages/my_page_name
https://www.facebook.com/my_page_ID
Esto también se enumera en la pregunta anterior
Este código se prueba en la consola JS disponible en las herramientas del sitio de desarrolladores de Facebook
Me parece que la solución más fácil para lo que describes es obtener el ID / nombre de la url que tienes usando lastIndexOf ("/") (para la mayoría de los idiomas tiene un equivalente) y luego obtener "https: // graph" .facebook.com / "+ id .
Los datos que esta url devuelve tienen la identificación (es decir: 6708787004) y el nombre de usuario (es decir: southpark), así que independientemente del identificador que use (lo que extrae de la url usando lastIndexOf), debe obtener el mismo resultado.
Editar
Este código:
identifier = url.substring(url.lastIndexOf("/"))
graphUrl = "https://graph.facebook.com/" + identifier
urlJsonData = getGraphData(graphUrl)
Debería funcionar igual (es decir, con los mismos datos) para ambos:
url = http://www.facebook.com/southpark
Y
url = http://www.facebook.com/6708787004
(Obviamente tendrá que implementar el método getGraphData ).
Además, el segundo formulario de la url en la pregunta no es una URL válida para las páginas, al menos no de mis pruebas, obtengo:
Es posible que haya hecho clic en un enlace caducado o que haya escrito mal la dirección. Algunas direcciones web distinguen entre mayúsculas y minúsculas.
Puedes obtener la identificación de la página usando la siguiente api
https://graph.facebook.com/v2.7/smhackapp?fields=id,name,fan_count,picture,is_verified&access_token= access_token & format = json
Tal vez pueda consultar los https://developers.facebook.com/docs/reference/api/#searching docs: busque en un par de tipos y, si encuentra lo que está buscando, vaya desde allí.
<?php
function getFacebookId($url) {
$id = substr(strrchr($url,''/''),1);
$json = file_get_contents(''http://graph.facebook.com/''.$id);
$json = json_decode($json);
return $json->id;
}
echo getFacebookId($_GET[''url'']);
?>
Eso es un ejemplo PHP de cómo obtener la identificación.