J'ai vu cette question mais ce que je veux, c'est différent.
Je veux obtenir l'ID Facebook pas à partir d'une URL générale (et donc conditionnelle si elle a le bouton J'aime ou non). Je souhaite obtenir l'ID Facebook à partir d'une page Facebook à l'aide de l'API Graph.
Notez que les pages Facebook peuvent avoir plusieurs formats, tels que:
http://www.facebook.com/my_page_name
http://www.facebook.com/pages/my_page_name
http://www.facebook.com/my_page_ID
Je sais que je pourrais faire des regex pour obtenir le nom my_page ou my_page_ID, mais je me demande si quelqu'un sait si GraphAPI prend en charge ce que je veux.
Il me semble que la solution la plus simple à ce que vous décrivez consiste simplement à obtenir l'id/nom à partir de l'URL que vous avez en utilisant lastIndexOf ("/") (pour lequel la plupart des langues ont un équivalent), puis obtenez "https://graph.facebook.com/" + id .
Les données renvoyées par cette URL ont l’id (c.-à-d. 6708787004) et le nom d’utilisateur (c.-à-d.: Southpark). Ainsi, quel que soit l'identificateur que vous utilisez (ce que vous extrayez de l'URL à l'aide de lastIndexOf), vous devriez obtenir le même résultat.
Ce code:
identifier = url.substring(url.lastIndexOf("/"))
graphUrl = "https://graph.facebook.com/" + identifier
urlJsonData = getGraphData(graphUrl)
Devrait fonctionner le même (c'est le résultat avec les mêmes données) pour les deux:
url = http://www.facebook.com/southpark
Et
url = http://www.facebook.com/6708787004
(vous devrez évidemment implémenter la méthode getGraphData ).
De plus, la deuxième forme d’URL de la question n’est pas valide pour les pages, du moins pas lors de mes tests, j’obtiens:
Vous avez peut-être cliqué sur un lien arrivé à expiration ou mal entré l'adresse. Un peu de web les adresses sont sensibles à la casse.
La réponse à la question est affichée ci-dessus, mais la méthode présentée ci-dessous fonctionne bien. Nous n'avons pas à exécuter la variable regex
sur la page facebook.
J'ai eu la réponse par cette méthode
FB.api('/any_fb_page_url', function(response){
console.log(response);
});
any_fb_page_url peut être l'un des types suivants
https://www.facebook.com/my_page_name
https://www.facebook.com/pages/my_page_name
https://www.facebook.com/my_page_ID
Ce sont également énumérés dans la question ci-dessus
Ce code est testé sur la console JS disponible sur Outils du site Facebook des développeurs
Vous pouvez obtenir l'identifiant de la page en utilisant l'API ci-dessous
https://graph.facebook.com/v2.7/smhackapp?fields=id,name,fan_count,picture,is_verified&access_token=code d'accès & format = json
<?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']);
?>
C’est un exemple PHP de la façon d’obtenir l’ID.
Cette réponse prend en compte le fait qu'une URL peut se terminer par une barre oblique finale, ce que les pages d'événements Facebook semblent avoir dans leurs URL maintenant.
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];
}
Vous pouvez utiliser Requests et re Modules dans python
Code:
import requests,re
profile_url = "https://www.facebook.com/alanwalker97"
idre = re.complie('"entity_id":"([0-9]+)"')
con = requests.get(profile_url).content
id = idre.findall(con)
print("\n[*] ID: "+id[0])
Sortie:
[*] ID: 100001013078780