Ich arbeite an einem CMS , das das Profilbild eines Benutzers von seiner Facebook- URL abruft ( dh http://facebook.com/users_unique_url ). Wie kann ich das erreichen? Gibt es einen Faceboook-API-Aufruf, der die Profilbild-URL eines Benutzers abruft, ohne dass der Benutzer die Anwendung zulassen muss ?
257
?type=large
durchsehen , könnte eine weitere nützliche Sache der Querystring sein, den Sie hinzufügen können. Requisiten für eine viel bessere Antwort als das Screen-Scraping, das ich geschrieben habe, übrigens :).<img src="//graph.facebook.com/sarfraz.anees/picture" />
Sie diese Option, wenn Sie zwischen HTTP und HTTPS wechseln. Das Protokoll wird vom Browser erkannt und es werden keine Warnungen zu gemischten Inhalten auf HTTPS angezeigt.Zeigen:
50x50 Pixel
200 Pixel Breite
Speichern (mit PHP)
HINWEIS: Verwenden Sie dies nicht . Siehe den Kommentar von @ Foreever unten.
Wobei $ fid Ihre Benutzer-ID auf Facebook ist.
HINWEIS: Bei Bildern, die als "18+" gekennzeichnet sind, benötigen Sie ein gültiges access_token von einem 18+ Benutzer:
UPDATE 2015:
Die Graph API v2.0 kann nicht mit Benutzernamen abgefragt werden. Sie sollten sie
userId
immer verwenden.quelle
UPDATE :
Ab Ende August 2012 wurde die API aktualisiert, damit Sie Benutzerprofilbilder in verschiedenen Größen abrufen können. Fügen Sie die optionalen Felder für Breite und Höhe als URL-Parameter hinzu:
wo
WIDTH
undHEIGHT
sind Ihre gewünschten Dimensionswerte.Dadurch wird ein Profilbild mit einer Mindestgröße von
WIDTH
x zurückgegeben,HEIGHT
während versucht wird, das Seitenverhältnis beizubehalten. Beispielsweise,kehrt zurück
END UPDATE
Rufen Sie an, um das Profilbild eines Benutzers zu erhalten
Dabei
USER_ID
kann es sich um die Benutzer-ID oder den Benutzernamen handeln.Rufen Sie an, um ein Benutzerprofilbild einer bestimmten Größe zu erhalten
wo
SIZE
sollte durch eines der Wörter ersetzt werdenabhängig von der gewünschten Größe.
Dieser Aufruf gibt eine URL zu einem einzelnen Bild zurück, deren Größe auf dem von Ihnen gewählten Typparameter basiert.
Beispielsweise:
Gibt eine URL zu einer kleinen Version des Bildes zurück.
Die API gibt nur die maximale Größe für Profilbilder an, nicht die tatsächliche Größe.
Quadrat:
Klein
Normal
Groß
Wenn Sie die Standard-USER_ID / das Standardbild aufrufen, erhalten Sie den quadratischen Typ.
KLÄRUNG
Wenn Sie anrufen (wie im obigen Beispiel)
Es wird eine JSON- Antwort zurückgegeben, wenn Sie eine der Anforderungsmethoden für Facebook SDKs verwenden . Andernfalls wird das Bild selbst zurückgegeben. Fügen Sie Folgendes hinzu, um den JSON immer abzurufen:
wie so:
quelle
&redirect=false
, um die JSON-Daten zurückzugeben, anstatt zum Bild umzuleitenSo erhalten Sie die Bild-URL, NICHT binären Inhalt:
Sie müssen Ihre FACEBOOK-ID verwenden, NICHT USERNAME. Dort können Sie Ihre Facebook-ID abrufen:
http://findmyfbid.com/
quelle
Einfacher einzeiliger Code zum Speichern des Profilbilds in voller Größe auf Ihrem Server.
Dies funktioniert nur, wenn openssl in der php.ini aktiviert ist.
quelle
Fügte dies als Kommentar zur akzeptierten Antwort hinzu, hielt es jedoch für eine längere Erklärung. Ab etwa April 2015 wird dies wahrscheinlich einige Male angesprochen.
Ab V2 der Grafik-API funktioniert die akzeptierte Antwort nicht mehr mit einem Benutzernamen. Jetzt benötigen Sie zuerst die Benutzer-ID, und Sie können keinen Benutzernamen mehr verwenden, um diese zu erhalten. Um die Angelegenheit aus Datenschutzgründen weiter zu verkomplizieren, ändert Facebook jetzt die Benutzer- IDs pro App (siehe https://developers.facebook.com/docs/graph-api/reference/v2.2/user/ und https://developers.facebook) .com / docs / apps / upgrade / # upgrade_v2_0_user_ids ), sodass Sie über eine ordnungsgemäße Authentifizierung verfügen müssen, um eine Benutzer-ID abzurufen, die Sie verwenden können. Technisch gesehen ist das Profilbild immer noch öffentlich und unter / userid / picture verfügbar (siehe Dokumente unter https://developers.facebook.com/docs/graph-api/reference/v2.0/user/picture) und dieses Beispielbenutzer: http: //graph.facebook.com/v2.2/4/picture?redirect=0) Es scheint jedoch unmöglich, die Standardbenutzer-ID eines Benutzers nur anhand seines Profils herauszufinden. Ihre App müsste sie dazu bringen, die Interaktion mit der App zu genehmigen, was für meinen Anwendungsfall (nur ein Profilbild neben ihrem FB-Profillink anzeigen) übertrieben ist.
Wenn jemand einen Weg gefunden hat, um das Profilbild basierend auf dem Benutzernamen zu erhalten, oder alternativ, wie man eine Benutzer-ID (auch eine alternative) zum Abrufen eines Profilbilds verwendet, teilen Sie diese bitte mit! In der Zwischenzeit funktioniert die alte Grafik-URL noch bis April 2015.
quelle
Eine Möglichkeit besteht darin, den in seiner Antwort angegebenen Code Gamlet zu verwenden :
Speichern Sie es als
curl.php
Dann in Ihrer Datei:
Ich dachte, ich würde dies posten, weil ich ein bisschen Zeit gebraucht habe, um die Einzelheiten herauszufinden ... Auch wenn Profilbilder öffentlich sind, müssen Sie immer noch einen Zugriffstoken haben, um sie zu erhalten, wenn Sie sie einrollen .
quelle
Es gibt einen Weg das zu tun;)
Vielen Dank an " http://it.toolbox.com/wiki/index.php/Use_curl_from_PHP_-_processing_response_headers ":
quelle
Funktionierende PHP (HTTP GET) -Lösung ab April 2015 (ohne PHP 5 SDK):
Sie können 'type' in parametr ändern:
Quadrat:
Klein
Normal
Groß
quelle
Ich dachte - vielleicht ist ID ein nützliches Werkzeug. Jedes Mal, wenn ein Benutzer ein neues Konto erstellt, sollte er eine höhere ID erhalten. Ich habe gegoogelt und festgestellt, dass es eine Methode gibt, um das Kontoerstellungsdatum anhand der ID zu schätzen, und Massoud Seifi von metadatascience.com hat einige gute Daten darüber gesammelt.
Lesen Sie diesen Artikel:
http://metadatascience.com/2013/03/11/inferring-facebook-account-creation-date-from-facebook-user-id/
Und hier sind einige IDs zum Herunterladen:
http://metadatascience.com/2013/03/14/lookup-table-for-inferring-facebook-account-creation-date-from-facebook-user-id/
quelle
Der Blog-Beitrag Grab the Picture of a Facebook Graph Object bietet möglicherweise eine andere Form der Lösung. Verwenden Sie den Code im Tutorial zusammen mit der Graph API von Facebook und der PHP SDK-Bibliothek.
... und versuchen Sie, file_get_contents nicht zu verwenden (es sei denn, Sie sind bereit, sich den Konsequenzen zu stellen - siehe file_get_contents vs curl ).
quelle
Sind Sie besorgt über die Größe des Profilbildes? zum Zeitpunkt der Implementierung der Anmeldung bei Facebook mit PHP. Wir zeigen Ihnen den einfachen Weg, um ein großes Profilbild im Facebook PHP SDK zu erhalten. Sie können auch das benutzerdefinierte Bild des Facebook-Profils erhalten.
Stellen Sie die Profilbildgröße mithilfe der folgenden Codezeile ein.
$ userProfile = $ facebook-> api ('/ me? fields = picture.width (400) .height (400)');
Überprüfen Sie diesen Beitrag: http: //www.codexworld.com/how-to-guides/get-large-size-profile-picture-in-facebook-php-sdk/
quelle
@NaturalBornCamper,
Schöner Code! Hier ist eine Clean-Cut-Code-Funktion für einen solchen Prozess!
Dies gibt die rohe Facebook-Avatar-Bild-URL zurück. Dann können Sie damit machen, was Sie wollen!
quelle
Sie können die Profil-URI über das Online-Tool zur Suche nach Facebook-IDs abrufen
Sie können den Typparameter auch mit möglichen Werten klein, normal, groß, quadratisch übergeben.
Siehe die offizielle Dokumentation
quelle