Selama proses otorisasi, Google OAuth dapat menampilkan error. Gunakan panduan ini untuk memecahkan masalah error paling umum selama proses ini.
Pemecahan masalah
Untuk mempelajari Google OAuth lebih lanjut, lihat Menggunakan OAuth 2.0 untuk Mengakses Google API.
Masa berlaku token refresh terus habis
Token refresh dapat berhenti berfungsi setelah 7 hari jika Client ID tidak disetujui. Hal ini dapat menjadi salah satu penyebabnya. Masa berlaku token 7 hari tidak terkait dengan persetujuan Komersial atau Sandbox. Akun layanan atau pengguna harus mendapatkan persetujuan Client ID OAuth 2.0 dan dimasukkan ke dalam produksi untuk mendapatkan masa berlaku token yang lebih lama. Lihat Masa berlaku token refresh untuk mengetahui informasi selengkapnya.
Akses ditolak
Jika Anda telah menyiapkan layar izin OAuth di Google Cloud dan Jenis pengguna adalah Eksternal, Anda akan mendapatkan error "Akses ditolak" jika mencoba menautkan akun dengan Akun Google yang tidak tercantum sebagai pengguna uji coba untuk aplikasi Anda. Pastikan untuk menambahkan Akun Google ke bagian Pengguna uji coba di layar izin OAuth Anda.
Error Partner Connections Manager (PCM)
Untuk mendapatkan bantuan terkait error yang terjadi saat mengakses PCM, lihat Referensi Error Partner Connections Manager (PCM).
Google belum memverifikasi aplikasi ini
SDM API menggunakan cakupan terbatas, yang berarti bahwa aplikasi apa pun yang menggunakan cakupan ini selama otorisasi akan "belum diverifikasi" kecuali jika Verifikasi OAuth API selesai. Saat menggunakan Device Access untuk penggunaan pribadi, Verifikasi OAuth API tidak diperlukan.
Anda mungkin melihat layar "Google belum memverifikasi aplikasi ini" selama proses otorisasi, yang muncul jika cakupan sdm.service tidak dikonfigurasi di
layar izin OAuth Anda di Google Cloud. Layar ini dapat dilewati dengan mengklik opsi Lanjutan , lalu mengklik Buka Nama Project (tidak aman).
Lihat Layar aplikasi belum diverifikasi untuk mengetahui informasi selengkapnya.
Klien tidak valid
Saat mencoba mendapatkan token akses atau refresh, Anda akan mendapatkan error "Klien tidak valid" jika memberikan Secret Klien OAuth 2.0 yang salah. Pastikan nilai
client_secret yang Anda gunakan dalam panggilan token akses dan token refresh adalah nilai
untuk client ID OAuth 2.0 yang digunakan, seperti yang ditemukan di halaman
Google Cloud
Kredensial
Anda.
Permintaan tidak valid, cakupan yang diperlukan tidak ada
Setelah memberikan izin di PCM, Anda mungkin mengalami error "Permintaan tidak valid" dengan pesan "Parameter yang diperlukan tidak ada: cakupan". Pastikan nilai
scope yang Anda gunakan dalam panggilan otorisasi sama dengan nilai yang Anda tetapkan untuk Klien OAuth 2.0,
seperti yang ditemukan di halaman Google Cloud
Kredensial
Anda.
URI pengalihan tidak cocok
Saat melakukan otorisasi, Anda mungkin mengalami error "URI pengalihan tidak cocok". Pastikan nilai redirect_uri yang Anda gunakan dalam panggilan otorisasi sama dengan nilai yang Anda tetapkan untuk Klien OAuth 2.0, seperti yang ditemukan di halaman Kredensial Google Cloud Anda.
Referensi cepat
Gunakan referensi ini untuk menerapkan langkah-langkah dengan cepat guna mengotorisasi user dan menautkan Akun Google mereka .
Untuk menggunakan referensi cepat ini, edit setiap variabel placeholder dalam contoh kode dengan nilai untuk integrasi spesifik Anda, lalu salin dan tempel sesuai kebutuhan:
1 PCM
Arahkan ke link PCM di aplikasi Anda, dengan mengganti: user
- project-id dengan Device Access Project ID
- oauth2-client-id dengan Client ID OAuth2 dari Kredensial Google Cloud Anda
- redirect-uri dengan URI Pengalihan yang ditentukan untuk Client ID OAuth2 yang Anda gunakan
- scope dengan salah satu cakupan yang tersedia
https://nestservices.google.com/partnerconnections/project-id/auth?redirect_uri=redirect-uri& access_type=offline& prompt=consent& client_id=oauth2-client-id& response_type=code& scope=https://www.googleapis.com/auth/scope
2 Kode Autentikasi
Setelah memberikan izin melalui PCM untuk
cakupan yang dipilih, harus dialihkan ke URI Pengalihan yang Anda tentukan. user Kode Otorisasi ditampilkan sebagai parameter code di URL,
yang harus dalam format ini:
redirect-uri?code=authorization-code&scope=https://www.googleapis.com/auth/scope
3 Token Akses
Gunakan kode otorisasi untuk mengambil token akses, yang dapat Anda gunakan untuk memanggil SDM API atas nama pengguna.
Lakukan panggilan POST ke endpoint OAuth Google, dengan mengganti:
- oauth2-client-id dan oauth2-client-secret dengan Client ID OAuth2 dan Secret Klien dari Kredensial Google Cloud Anda
- authorization-code dengan kode yang Anda terima pada langkah sebelumnya
- redirect-uri dengan URI Pengalihan yang ditentukan untuk Client ID OAuth2 yang Anda gunakan
Google OAuth menampilkan dua token, yaitu token akses dan token refresh.
Permintaan
curl -L -X POST 'https://www.googleapis.com/oauth2/v4/token?client_id=oauth2-client-id&client_secret=oauth2-client-secret&code=authorization-code&grant_type=authorization_code&redirect_uri=redirect-uri' Respons
{
"access_token": "access-token",
"expires_in": 3599,
"refresh_token": "refresh-token",
"scope": "https://www.googleapis.com/auth/scope",
"token_type": "Bearer"
}4 Panggilan API
Otorisasi belum selesai hingga Anda melakukan panggilan API dengan token akses user. Panggilan awal ini menyelesaikan proses otorisasi dan mengaktifkan peristiwa.
Anda harus menggunakan salah satu panggilan API yang tercantum untuk cakupan yang ditentukan guna menyelesaikan otorisasi.
sdm.service
perangkat
Lihat referensi API
devices.list
untuk mengetahui informasi selengkapnya.
curl -X GET 'https://smartdevicemanagement.googleapis.com/v1/enterprises/project-id/devices' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer access-token'5 Token Refresh
Token akses untuk SDM API hanya
berlaku selama 1 jam, seperti yang tercantum dalam parameter expires_in yang ditampilkan oleh Google OAuth. Jika
masa berlaku token akses Anda habis, gunakan token refresh untuk mendapatkan token baru.
Lakukan panggilan POST ke endpoint OAuth Google, dengan mengganti:
- oauth2-client-id dan oauth2-client-secret dengan Client ID OAuth2 dan Secret Klien dari Kredensial Google Cloud Anda
- refresh-token dengan kode yang Anda terima saat pertama kali mendapatkan akses token.
Google OAuth menampilkan token akses baru.
Permintaan
curl -L -X POST 'https://www.googleapis.com/oauth2/v4/token?client_id=oauth2-client-id&client_secret=oauth2-client-secret&refresh_token=refresh-token&grant_type=refresh_token' Tanggapan
{
"access_token": "new-access-token",
"expires_in": 3599,
"scope": "https://www.googleapis.com/auth/scope",
"token_type": "Bearer"
}