Apakah mungkin mendapatkan informasi dari profil pengguna melalui Google API? Jika memungkinkan, API mana yang harus saya gunakan?
Saya tertarik dengan informasi seperti itu:
- Url ke profil pengguna (mis. Https://profiles.google.com/115063121183536852887 );
- Gender (jenis kelamin);
- Foto Profil.
Juga akan sangat bagus untuk mendapatkan informasi lain dari profil pengguna.
oauth
google-api
userinfo
glagola
sumber
sumber
curl -X GET "https://www.googleapis.com/oauth2/v1/userinfo?alt=json" -H"Authorization: Bearer accessTokenHere"
cakupan - https://www.googleapis.com/auth/userinfo.profile
dapatkan https://www.googleapis.com/oauth2/v1/userinfo?alt=json&access_token=youraccess_token
Anda akan mendapatkan json:
Kepada Tahir Yasin:
Ini adalah contoh php.
Anda dapat menggunakan fungsi json_decode untuk mendapatkan array userInfo.
sumber
$userInfoArray
properti. Ini akan seperti$userInfoArray['email']
mendapatkan alamat email dari$userInfoArray
. CATATAN KUTIPAN TUNGGAL UNTUK MENGAKSES RPOPERTI.define(email, 'email')
;)Cakupan https://www.googleapis.com/auth/userinfo.profile ini sudah tidak digunakan lagi sekarang. Silakan lihat di https://developers.google.com/+/api/auth-migration#timetable .
Cakupan baru yang akan Anda gunakan untuk mendapatkan info profil adalah: profil atau https://www.googleapis.com/auth/plus.login
dan titik akhirnya adalah - https://www.googleapis.com/plus/v1/people/ {userId} - userId hanya bisa menjadi 'saya' untuk pengguna yang sedang login.
sumber
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.
- GoogleSaya menggunakan
PHP
dan menyelesaikan ini dengan menggunakan versi 1.1.4 dari google-api-php-clientDengan asumsi kode berikut digunakan untuk mengarahkan pengguna ke halaman otentikasi Google:
Dengan asumsi kode otentikasi yang valid dikembalikan ke
redirect_url
, berikut ini akan menghasilkan token dari kode otentikasi serta memberikan informasi profil dasar:Namun, lokasi tidak dikembalikan. Akun YouTube baru tidak memiliki nama pengguna khusus YouTube
sumber
Saya menggunakan Google API untuk .Net, tetapi tidak diragukan lagi Anda dapat menemukan cara yang sama untuk mendapatkan informasi ini menggunakan versi API lainnya. Seperti user872858 disebutkan, ruang lingkup userinfo.profile telah usang ( google artikel ).
Untuk mendapatkan info profil pengguna saya menggunakan kode berikut (bagian yang ditulis ulang dari contoh google ):
Kemudian, Anda dapat mengakses hampir semua hal menggunakan userProfile.
UPDATE: Agar kode ini berfungsi, Anda harus menggunakan cakupan yang sesuai pada tombol masuk google. Misalnya tombol saya:
sumber
Ada 3 langkah yang perlu dijalankan.
Sangat menarik bahwa penggunaan yang paling sederhana ini tidak dijelaskan dengan jelas di mana pun. Dan saya yakin ada bahaya, Anda harus memperhatikan
verified_email
parameter yang datang dalam respons. Karena jika saya tidak salah mungkin akan menghasilkan email palsu untuk mendaftarkan aplikasi Anda. (Ini hanya interpretasi saya, memiliki peluang yang adil bahwa saya mungkin salah!)Saya menemukan mekanisme OAuth facebook dijelaskan dengan sangat jelas.
sumber
Jika Anda berada di lingkungan web sisi klien, API javascript auth2 baru berisi
getBasicProfile()
fungsi yang sangat dibutuhkan , yang mengembalikan nama pengguna, email, dan URL gambar.https://developers.google.com/identity/sign-in/web/reference#googleusergetbasicprofile
sumber
Jika Anda hanya ingin mengambil ID pengguna Google, nama dan gambar untuk pengunjung aplikasi web Anda - berikut adalah solusi sisi layanan PHP murni saya untuk tahun 2020 tanpa menggunakan pustaka eksternal -
Jika Anda membaca panduan Menggunakan OAuth 2.0 untuk Aplikasi Server Web oleh Google (dan berhati-hatilah, Google suka mengubah tautan ke dokumentasinya sendiri), maka Anda hanya perlu melakukan 2 langkah:
Salah satu token yang dikembalikan disebut "id_token" dan berisi id pengguna, nama, dan foto pengunjung.
Berikut adalah kode PHP web game oleh saya. Awalnya saya menggunakan Javascript SDK, tetapi kemudian saya perhatikan bahwa data pengguna palsu dapat diteruskan ke game web saya, saat menggunakan SDK sisi klien saja (terutama ID pengguna, yang penting untuk game saya), jadi saya beralih menggunakan PHP di sisi server:
Anda dapat menggunakan pustaka PHP untuk menambahkan keamanan tambahan dengan memverifikasi tanda tangan JWT. Untuk tujuan saya itu tidak perlu, karena saya percaya bahwa Google tidak akan mengkhianati permainan web kecil saya dengan mengirimkan data pengunjung palsu.
Selain itu, jika Anda ingin mendapatkan lebih banyak data pribadi pengunjung, maka Anda memerlukan langkah ketiga:
Atau Anda bisa mendapatkan lebih banyak izin atas nama pengguna - lihat daftar panjangnya di dokumen Cakupan OAuth 2.0 untuk Google API .
Terakhir, konstanta APP_ID dan APP_SECRET digunakan dalam kode saya - Anda mendapatkannya dari konsol Google API :
sumber