Ich habe diese Frage gesehen aber was ich will, ist anders.
Ich möchte, dass die Facebook-ID nicht von einer allgemeinen URL abgerufen wird (und daher bedingt, wenn sie einen Like-Button hat oder nicht). Ich möchte, dass die Facebook-ID mithilfe der Graph-API einer Facebook-Seite zugewiesen wird.
Beachten Sie, dass Facebook-Seiten mehrere Formate haben können, wie zum Beispiel:
http://www.facebook.com/my_page_name
http://www.facebook.com/pages/my_page_name
http://www.facebook.com/my_page_ID
Ich weiß, ich könnte etwas Regex tun, um entweder den Namen my_page oder my_page_ID zu erhalten, aber ich frage mich, ob jemand weiß, ob GraphAPI unterstützt, was ich will.
Es scheint mir, dass die einfachste Lösung für das, was Sie beschreiben, ist, einfach die ID/den Namen von der URL zu erhalten, die Sie mit lastIndexOf ("/") verwenden (für die die meisten Sprachen ein Äquivalent haben) und dann erhalten. "https://graph.facebook.com/" + id .
Die Daten, die von dieser URL zurückgegeben werden, haben die ID (d. H. 6708787004) und den Benutzernamen (d. H.: Southpark). Unabhängig davon, welche Kennung Sie verwenden (was Sie mit lastIndexOf aus der URL extrahieren), sollten Sie dasselbe Ergebnis erhalten.
Dieser Code:
identifier = url.substring(url.lastIndexOf("/"))
graphUrl = "https://graph.facebook.com/" + identifier
urlJsonData = getGraphData(graphUrl)
Sollte für beide gleich funktionieren (das ist das Ergebnis mit den gleichen Daten):
url = http://www.facebook.com/southpark
Und
url = http://www.facebook.com/6708787004
(Sie müssen natürlich die Methode getGraphData implementieren.).
Auch das 2. URL-Formular in der Frage ist keine gültige URL für Seiten, zumindest nicht aus meinen Tests, die ich bekomme:
Sie haben möglicherweise einen abgelaufenen Link angeklickt oder die Adresse falsch eingegeben. Etwas web Adressen sind Groß- und Kleinschreibung.
Die Antwort auf die Frage ist oben veröffentlicht, aber die unten gezeigte Methode funktioniert gut. Wir müssen die Variable regex
nicht auf den URLs der Facebook-Seite ausführen
Ich habe die Antwort mit dieser Methode erhalten
FB.api('/any_fb_page_url', function(response){
console.log(response);
});
any_fb_page_url kann einer der folgenden Typen sein
https://www.facebook.com/my_page_name
https://www.facebook.com/pages/my_page_name
https://www.facebook.com/my_page_ID
Diese sind auch oben in Frage gestellt
Dieser Code wird auf der JS-Konsole getestet, die auf Facebook Developers Site Tools verfügbar ist.
Sie können die Seiten-ID abrufen, indem Sie die folgende API verwenden
https://graph.facebook.com/v2.7/smhackapp?fields=id,name,fan_count,picture,is_verified&access_token=access_token & 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']);
?>
Das ist ein PHP Beispiel, wie man die ID erhält.
Diese Antwort wurde 2019 aktualisiert und überprüft. Sie ist sehr einfach, da Sie nichts aus dem Link extrahieren müssen. zum Beispiel:
https://graph.facebook.com/?id=link&access_token=xxxxxxxx
antwort: {"Name": "Vaireo Shop", "ID": "2138395226250622"}
vollständige NodeJS-Antwort:
async function getBusinessFromFBByPageURL(pageURL: string) {
const accessToken = process.env.fb_app_access_token;
const graphUrl = `https://graph.facebook.com/?id=${pageURL}? access_token=${accessToken}`;
const fbGraphResponse = await Axios.get(graphUrl);
Diese Antwort berücksichtigt, dass eine URL mit einem nachgestellten Schrägstrich enden kann, was die Facebook-Ereignisseiten in ihren URLs zu haben scheinen.
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];
}
Sie können Requests und re Modules in python verwenden.
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])
Ausgabe:
[*] ID: 100001013078780