it-swarm.com.de

Facebook Graph API - ID von der Facebook-Seiten-URL abrufen

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.

36
Hommer Smith

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.


Bearbeiten

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.

28
Nitzan Tomer

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.

10
Suraj Palwe

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

Referenzbild

6
Mani
<?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.

5
Alon Carmel

Diese Antwort wurde 2019 aktualisiert und überprüft. Sie ist sehr einfach, da Sie nichts aus dem Link extrahieren müssen. zum Beispiel:

  1. https://www.facebook.com/pg/Vaireo-Shop-2138395226250622/about/
  2. https://www.facebook.com/withminta
  3. https://www.facebook.com/2138395226250622

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);
1
dang

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];
}
0
Jon Koops

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

0
J0KER11