google api - plus - Google+ Profilbild-URL mit user_id abrufen




google+ button generator (7)

Der Zugriff auf die URL / s2 / profile / photo funktioniert für die meisten Benutzer, aber nicht für alle.

Die einzige vollständige Beweismethode ist die Verwendung der Google+ API. Sie benötigen keine Benutzerauthentifizierung, um öffentliche Profildaten anzufordern, daher handelt es sich um eine recht einfache Methode:

  1. Rufen Sie unter https://cloud.google.com/console einen Google+ API-Schlüssel auf

  2. Machen Sie eine einfache GET-Anfrage an: https://www.googleapis.com/plus/v1/people/+ <Benutzername>? Key =

Notieren Sie das + vor dem Benutzernamen. Wenn Sie stattdessen Benutzer-IDs (die lange Ziffernfolge) verwenden, brauchen Sie das + nicht

  1. Sie erhalten eine sehr umfassende JSON-Darstellung der Profildaten, die Folgendes enthält: "image": {"url": " https://lh4.googleusercontent.com/ ..... der Rest des Bildes URL .... "}

Ich weiß, dass viele Social-Network-APIs eine Möglichkeit bieten, eine URL für das Profilbild eines Benutzers mit ihrer Benutzer-ID oder ihrem Benutzernamen zu erstellen. Für Facebook sieht das so aus:

http://graph.facebook.com/user_id/picture?type=square

Jetzt gibt es so etwas für Google Plus? Oder eine andere Möglichkeit, User-Bild ohne einen API-Aufruf zu bekommen ??


Einfache Antwort: Nein

Sie müssen die Personen-API abfragen und das Profil image.url , um das Foto zu erhalten. AFAIK gibt es kein Standardformat für die URL, die die Benutzer-ID enthält.



Habe alles Mögliche versucht .. hier ist das letzte Stück Arbeitscode. Hoffe es hilft jemandem, der danach sucht.

    <?
$url='https://www.googleapis.com/plus/v1/people/116599978027440206136?fields=image%2Furl&key=MY_API_KEY&fields=image';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_PROXYPORT, 3128);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
$response = curl_exec($ch);
curl_close($ch);
$d = json_decode($response);
$avatar_url = $d->{'image'}->{'url'};
echo $avatar_url;
?>

UPDATE: Google hat die Unterstützung für diese Methode gestoppt, die jetzt einen Fehler 404 (nicht gefunden) zurückgibt .

Alle diese URLs holen das Profilbild eines Benutzers:

https://www.google.com/s2/photos/profile/{user_id}
https://plus.google.com/s2/photos/profile/{user_id}
https://profiles.google.com/s2/photos/profile/{user_id}

Sie verweisen auf dieselbe Bild-URL, die Sie von Google API erhalten, einen hässlichen Link als
lh6.googleusercontent.com/-x1W2-XNKA-A/AAAAAAAAAAI/AAAAAAAAAAA/ooSNulbLz8U/photo.jpg

Am einfachsten ist es, die Bildquelle direkt zu verwenden:

<img src="https://www.google.com/s2/photos/profile/{user_id}">

Andernfalls können Sie, um genau die URL eines Google API-Aufrufs zu erhalten, Bildkopfzeilen lesen.
zum Beispiel in PHP:

$headers = get_headers("https://www.google.com/s2/photos/profile/{user_id}", 1);
echo "<img src=$headers[Location]>";

wie im Artikel beschrieben, holen Sie sich Google Plus Profilbild mit PHP .


Wenn Sie das Profilbild für den aktuell angemeldeten Benutzer anzeigen möchten, müssen Sie nicht einmal die {user_id} kennen. Es genügt, https://plus.google.com/s2/photos/profile/me zu verwenden.


UPDATE: Die folgende Methode funktioniert seit 2015 nicht

Es ist möglich, das Profilbild zu erhalten, und Sie können sogar die Größe des Profils festlegen:

https://plus.google.com/s2/photos/profile/<user_id>?sz=<your_desired_size>

Beispiel: Mein Profilbild mit einer Größe von 100 Pixel:

https://plus.google.com/s2/photos/profile/116018066779980863044?sz=100

Verwendung mit einem Image-Tag:

<img src="https://plus.google.com/s2/photos/profile/116018066779980863044?sz=100" width="100" height="100">

Hoffe es funktioniert!