Czy można uzyskać informacje z profilu użytkownika za pośrednictwem Google API? Jeśli to możliwe, którego interfejsu API powinienem użyć?
Interesują mnie takie informacje:
- Adres URL profilu użytkownika (np. Https://profiles.google.com/115063121183536852887 );
- Płeć (płeć);
- Zdjęcie profilowe.
Fajnie byłoby też uzyskać inne informacje z profilu użytkownika.
oauth
google-api
userinfo
glagola
źródło
źródło
curl -X GET "https://www.googleapis.com/oauth2/v1/userinfo?alt=json" -H"Authorization: Bearer accessTokenHere"
zakres - https://www.googleapis.com/auth/userinfo.profile
get https://www.googleapis.com/oauth2/v1/userinfo?alt=json&access_token=youraccess_token
otrzymasz json:
Do Tahira Yasina:
To jest przykład php.
Możesz użyć funkcji json_decode, aby uzyskać tablicę userInfo.
źródło
$userInfoArray
właściwości. Powinien być podobny$userInfoArray['email']
do adresu e-mail z$userInfoArray
. ZWRÓCIĆ UWAGĘ NA POJEDYNCZĄ OFERTĘ, ABY UZYSKAĆ DOSTĘP DO WŁAŚCIWOŚCI.define(email, 'email')
;)Ten zakres https://www.googleapis.com/auth/userinfo.profile został wycofany. Zajrzyj na https://developers.google.com/+/api/auth-migration#timetable .
Nowy zakres, którego będziesz używać do uzyskiwania informacji o profilu, to: profile lub https://www.googleapis.com/auth/plus.login
a punkt końcowy to - https://www.googleapis.com/plus/v1/people/ {userId} - userId może być po prostu „ja” dla aktualnie zalogowanego użytkownika.
źródło
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.
- GoogleUżywam
PHP
i rozwiązałem ten problem, używając wersji 1.1.4 google-api-php-clientZakładając, że następujący kod służy do przekierowania użytkownika na stronę uwierzytelniającą Google:
Zakładając, że poprawny kod uwierzytelniający zostanie zwrócony do
redirect_url
, poniższe wygeneruje token z kodu uwierzytelniającego, a także poda podstawowe informacje o profilu:Jednak lokalizacja nie jest zwracana. Nowe konta YouTube nie mają nazw użytkownika specyficznych dla YouTube
źródło
Używam Google API dla .Net, ale bez wątpienia możesz znaleźć ten sam sposób na uzyskanie tych informacji za pomocą innej wersji API. Jako user872858 wspomniano, zakres userinfo.profile została zastąpiona ( google artykułu ).
Aby uzyskać informacje o profilu użytkownika, używam następującego kodu (przepisanego fragmentu z przykładu Google ):
Dzięki temu możesz uzyskać dostęp do prawie wszystkiego za pomocą userProfile.
AKTUALIZACJA: Aby ten kod działał, musisz użyć odpowiednich zakresów na przycisku logowania Google. Na przykład mój przycisk:
źródło
Należy wykonać 3 kroki.
To bardzo interesujące, że to najprostsze zastosowanie nie jest nigdzie jasno opisane. I wierzę, istnieje niebezpieczeństwo, należy zwrócić uwagę na
verified_email
parametr nadchodzącym w odpowiedzi. Ponieważ jeśli się nie mylę , rejestracja aplikacji może zawierać fałszywe e-maile. (To tylko moja interpretacja, istnieje duże prawdopodobieństwo, że się mylę!)Uważam, że mechanika OAuth na Facebooku jest znacznie wyraźnie opisana.
źródło
Jeśli pracujesz w środowisku internetowym po stronie klienta, nowy interfejs API javascript auth2 zawiera bardzo potrzebną
getBasicProfile()
funkcję, która zwraca nazwę użytkownika, adres e-mail i adres URL obrazu.https://developers.google.com/identity/sign-in/web/reference#googleusergetbasicprofile
źródło
Jeśli chcesz pobrać tylko identyfikator użytkownika Google, nazwę i zdjęcie odwiedzającego Twoją aplikację internetową - oto moje rozwiązanie po stronie usługi PHP na rok 2020 bez użycia zewnętrznych bibliotek -
Jeśli przeczytałeś przewodnik Google Using OAuth 2.0 for Web Server Applications (i uważaj, Google lubi zmieniać linki do własnej dokumentacji), musisz wykonać tylko 2 kroki:
Jeden ze zwróconych tokenów nosi nazwę „id_token” i zawiera identyfikator użytkownika, imię i nazwisko oraz zdjęcie odwiedzającego.
Oto kod PHP mojej gry internetowej . Początkowo korzystałem z Javascript SDK, ale potem zauważyłem, że fałszywe dane użytkownika mogą być przekazywane do mojej gry internetowej, gdy używam tylko SDK po stronie klienta (szczególnie identyfikator użytkownika, który jest ważny dla mojej gry), więc przełączyłem się na używanie PHP po stronie serwera:
Możesz użyć biblioteki PHP, aby zwiększyć bezpieczeństwo, weryfikując podpis JWT. Dla moich celów było to niepotrzebne, ponieważ ufam, że Google nie zdradzi mojej małej gry internetowej, wysyłając fałszywe dane odwiedzających.
Ponadto, jeśli chcesz uzyskać więcej danych osobowych odwiedzającego, potrzebujesz trzeciego kroku:
Możesz też uzyskać więcej uprawnień w imieniu użytkownika - zobacz długą listę w dokumencie OAuth 2.0 Scopes for Google APIs .
Na koniec stałe APP_ID i APP_SECRET użyte w moim kodzie - otrzymujesz to z konsoli Google API :
źródło