Ist es möglich, Informationen aus dem Nutzerprofil über die Google-API abzurufen? Wenn es möglich ist, welche API soll ich verwenden?
Ich bin an solchen Informationen interessiert:
- URL zum Benutzerprofil (z. B. https://profiles.google.com/115063121183536852887 );
- Geschlecht (Geschlecht);
- Profilfoto.
Es wäre auch cool, andere Informationen aus dem Benutzerprofil zu erhalten.
oauth
google-api
userinfo
Glagola
quelle
quelle
curl -X GET "https://www.googleapis.com/oauth2/v1/userinfo?alt=json" -H"Authorization: Bearer accessTokenHere"
Umfang - https://www.googleapis.com/auth/userinfo.profile
Holen Sie sich https://www.googleapis.com/oauth2/v1/userinfo?alt=json&access_token=youraccess_token
Sie werden json bekommen:
Zu Tahir Yasin:
Dies ist ein PHP-Beispiel.
Sie können die Funktion json_decode verwenden, um das userInfo-Array abzurufen.
quelle
$userInfoArray
Eigenschaften zu erhalten. Es sollte so sein$userInfoArray['email']
, als würde man die E-Mail-Adresse von der erhalten$userInfoArray
. HINWEIS: EINZELZITAT FÜR DEN ZUGRIFF AUF RPOPERTIES.define(email, 'email')
Dieser Bereich https://www.googleapis.com/auth/userinfo.profile ist jetzt veraltet. Bitte besuchen Sie https://developers.google.com/+/api/auth-migration#timetable .
Der neue Bereich, den Sie zum Abrufen von Profilinformationen verwenden, ist: profile oder https://www.googleapis.com/auth/plus.login
und der Endpunkt ist - https://www.googleapis.com/plus/v1/people/ {userId} - userId kann nur "ich" für den aktuell angemeldeten Benutzer sein.
quelle
If you are directly requesting the “plus.me” scope, any other Google+ OAuth scopes, or making any Google+ API calls, please ensure that you remove these requests from your project before March 7, 2019.
- GoogleIch benutze
PHP
und löste dies mit der Version 1.1.4 von Google-API-PHP-ClientAngenommen, der folgende Code wird verwendet, um einen Nutzer zur Google-Authentifizierungsseite umzuleiten:
Angenommen, ein gültiger Authentifizierungscode wird an zurückgegeben,
redirect_url
generiert das Folgende ein Token aus dem Authentifizierungscode und stellt grundlegende Profilinformationen bereit:Der Standort wird jedoch nicht zurückgegeben. Neue YouTube-Konten haben keine YouTube-spezifischen Benutzernamen
quelle
Ich verwende die Google-API für .Net, aber ohne Zweifel können Sie den gleichen Weg finden, um diese Informationen mit einer anderen API-Version zu erhalten. Wie bereits erwähnt, ist der Bereich userinfo.profile veraltet ( Google-Artikel) ).
Um Benutzerprofilinformationen zu erhalten, verwende ich folgenden Code (neu geschriebener Teil aus Googles Beispiel ):
Dann können Sie mit userProfile auf fast alles zugreifen.
UPDATE: Damit dieser Code funktioniert, müssen Sie die entsprechenden Bereiche für die Google-Anmeldeschaltfläche verwenden. Zum Beispiel meine Schaltfläche:
quelle
Es müssen 3 Schritte ausgeführt werden.
Es ist sehr interessant, dass diese einfachste Verwendung nirgendwo klar beschrieben wird. Und ich glaube, es besteht die Gefahr, dass Sie auf den
verified_email
Parameter in der Antwort achten . Denn wenn ich mich nicht irre , kann es zu gefälschten E-Mails kommen, um Ihre Bewerbung zu registrieren. (Dies ist nur meine Interpretation, hat eine faire Chance, dass ich mich irre!)Ich finde die OAuth-Mechanik von Facebook sehr klar beschrieben.
quelle
Wenn Sie sich in einer clientseitigen Webumgebung befinden, enthält die neue Javascript-API auth2 eine dringend benötigte
getBasicProfile()
Funktion, die den Namen, die E-Mail- Adresse und die Bild-URL des Benutzers zurückgibt.https://developers.google.com/identity/sign-in/web/reference#googleusergetbasicprofile
quelle
Wenn Sie nur die Google-Benutzer-ID, den Namen und das Bild für einen Besucher Ihrer Web-App abrufen möchten, finden Sie hier meine reine PHP-Service-Side-Lösung für das Jahr 2020, ohne dass externe Bibliotheken verwendet werden.
Wenn Sie das Handbuch Verwenden von OAuth 2.0 für Webserver-Anwendungen von Google lesen (und beachten Sie, dass Google gerne Links zu seiner eigenen Dokumentation ändert), müssen Sie nur zwei Schritte ausführen:
Einer der zurückgegebenen Token heißt "id_token" und enthält die Benutzer-ID, den Namen und das Foto des Besuchers.
Hier ist der PHP-Code eines Web-Spiels von mir. Ursprünglich habe ich Javascript SDK verwendet, aber dann habe ich festgestellt, dass gefälschte Benutzerdaten an mein Webspiel übergeben werden können, wenn nur clientseitiges SDK verwendet wird (insbesondere die Benutzer-ID, die für mein Spiel wichtig ist). Daher habe ich auf Verwendung umgestellt PHP auf der Serverseite:
Sie können eine PHP-Bibliothek verwenden, um zusätzliche Sicherheit zu schaffen, indem Sie die JWT-Signatur überprüfen. Für meine Zwecke war dies unnötig, da ich darauf vertraue, dass Google mein kleines Web-Spiel nicht durch das Senden gefälschter Besucherdaten verrät.
Wenn Sie mehr persönliche Daten des Besuchers erhalten möchten, benötigen Sie einen dritten Schritt:
Oder Sie erhalten weitere Berechtigungen für den Benutzer. Weitere Informationen finden Sie in der langen Liste im Dokument OAuth 2.0 Scopes for Google APIs .
Schließlich die in meinem Code verwendeten Konstanten APP_ID und APP_SECRET - Sie erhalten sie von der Google API-Konsole :
quelle