Abrufen des öffentlichen Google / Gmail-Bildes eines Nutzers
Schreibe ich eine E-Mail-basierte Anwendung, die über die gmail-api, und ich brauche, um das abrufen von Benutzer-öffentliche Bilder für E-Mail-Adresse Ursprung von google.
Ich habe gesehen, andere Anwendungen zu tun, aber ich kann nicht scheinen, einen Weg, um zuverlässig diese Daten abrufen.
einige weitere Informationen:
- ich bin mit oauth2 zu unterzeichnen, die Benutzer in - und-ich habe kein problem ersuchenden jede Art von Berechtigungen vorhanden.
- ich habe versucht, das abrufen von Bildern mithilfe der google+ api - aber es erfordert eine Benutzer-id für die - und ich weiß nicht, wie man die Benutzer-id für die E-Mail-Adresse (gmail-api nicht geben, afaik).
- ich habe versucht, mit der Kontakte-API - aber es gibt nur Bilder für die Kontakte des Benutzers, während die E-Mail-clients angezeigt werden können Bilder von anderen Usern als gut.
Dank!
Edit:
Ich weiß, ich kann erhalten die gewünschten Bilder aus google plus, wenn ich dem anderen Benutzer die userid. jedoch, ich kann nicht einen Weg finden, um die Benutzerkennung basiert auf einer E-Mail-Adresse.
InformationsquelleAutor der Frage shaish | 2014-09-01
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ist sehr einfach
http://picasaweb.google.com/data/entry/api/user/<hereYourUserIdOrYourEmail>?alt=json
nur ein kleines problem hat.
Können Sie nur bekommen Sie das Bild Ihrer Google+ - Profil, nicht direkt aus Ihrem gmail -
InformationsquelleAutor der Antwort jose920405
Basierend auf @jose920405 Antwort, die ich geschrieben habe, diese freie öffentliche API-Dienst namens Pikmail API. Hier einige Vorteile.
Hier ist der blog-post über wie Pikmail API-intern funktioniert.
Verwendung:
Html
Java Android
Fühlen Sie sich frei, beitragen, mit dem Sie pull-requests, offenen bugs, oder fordern Sie neue Funktionen hier.
Hinweis: Dieser Dienst basiert auf einer unabhängigen Bibliothek namens Pikmaildie verwendet werden können, wie ein Gradle-Abhängigkeit in Ihre java-Projekte(Server-oder Android-apps).
InformationsquelleAutor der Antwort epool
Google+ ist der richtige Weg, dies zu tun. Das hat eigentlich nichts mit der Gmail API. Sie brauchen nicht eine des Benutzers "userid", nur einen gültigen access-token mit entsprechender Bereiche.
https://www.googleapis.com/plus/v1/people/me?access_token=YOUR_ACCESS_TOKEN_HERE
Es sei denn, es ist ein Fehler/Ungültiger token/etc, das liefert eine Reihe von Informationen über den Benutzer als JSON. Enthalten sind in diesen Daten wird eine URI für die Benutzer - Profil-Bild.
EDIT:
Um das Profil Bild für einen Benutzer basierend auf der E-Mail-Adresse, suchen Sie zuerst die für den Benutzer
https://www.google.com/m8/feeds/contacts/default/thin?q=EMAIL_ADDRESS_HERE
Können Sie dann rufen Sie die richtige Benutzer-id für diesen Benutzer aus der zurückgegebenen JSON, und verwenden Sie es, um ein Profil-Bild.
InformationsquelleAutor der Antwort James
Können Sie mit google app-Profil-API
hier ist der Beispiel-code für den Zugriff auf Profil-pic
weitere Informationen erhalten Sie hier
InformationsquelleAutor der Antwort Satish Shinde
Vielleicht zu spät, bei der Beantwortung der Frage, aber der beste Weg, fand ich war die erste Nutzung
http://picasaweb.google.com/data/entry/api/user/?alt=json -
aus der JSON-Antwort bekommst du Autor Abschnitt die
uri: $t: https:picasaweb.google.com/0000000000000
nun die zahlen am Ende ist die BENUTZER-ID kann verwendet werden, um Benutzer-Profil die Verwendung dieser API
https:www.googleapis.com/plus/v1/people/userId
Ex: https:www.googleapis.com/plus/v1/people/0000000000000
InformationsquelleAutor der Antwort Ricky
einem einfachen javascript fetch öffentlichen Profil-Bild von google:
InformationsquelleAutor der Antwort eyal
Wenn Sie die Authentifizierung von Benutzern in Ihrer app mit Google mithilfe der OAuth-2.0-API, beispielsweise über Pass -> https://www.npmjs.com/package/passport-google-oauth20
Können Sie verlangen, die "Profil" - Rahmen, der gibt Ihnen ein paar Informationen aus "displayName" der Benutzer-Profil-Fotos " - Profil.Fotos[0]"
InformationsquelleAutor der Antwort Dan Perry