Developerdapat menggunakan SDM API untuk melihat dan mengelola perangkat Google Nest atas nama user. SDM API memvalidasi bahwa user mengelola perangkat yang diakses, bahwa user telah mengizinkan developer membaca atau menulis setiap karakteristik perangkat, dan bahwa developer telah diizinkan untuk mengakses setiap karakteristik.
Untuk menggunakan SDM API untuk pengelolaan perangkat,developer harus diberi otorisasi terlebih dahulu oleh user.
Untuk panduan proses otorisasi, lihat halaman Memberikan Otorisasi ke Akun di Device Access Panduan Memulai Cepat.
Untuk mendapatkan bantuan terkait pemecahan masalah error otorisasi, lihat Error Otorisasi.
Alur OAuth
SDM API menggunakan alur OAuth Google tiga legged untuk otorisasiuser :
- Jika a user ingin memberikan otorisasi a developer untuk pengelolaan perangkat Nest, developer akan mengirimkan user ke PCM, tempat user login ke Akun Google mereka.
- user memilih izin yang akan diberikan untuk developer di PCM.
- user memberikan izin melalui OAuth, yang memberikan developer Kode Otorisasi.
- developer menggunakan Kode Otorisasi untuk mengambil Token Akses.
- developer menggunakan Token Akses dengan panggilan ke SDM API untuk pengelolaan perangkat.
Untuk mempelajari Google OAuth lebih lanjut dan cara menyiapkannya, lihat Menggunakan OAuth 2.0 untuk Mengakses Google API.
Partner Connections Manager (PCM)
PCM disediakan oleh SDM API. Ini adalah tampilan yang mencantumkan semua struktur, perangkat, dan opsi akses yang dapat diberikan olehuser ke developer. user memilih apa yang akan diberi akses selama proses otorisasi dan mempertahankan kontrol atas akses tersebut.
Opsi yang dipilih di PCM dipetakan ke grup karakteristik, yang merupakan kumpulan karakteristik yang akan diberi akses ke developer . Beberapa grup sifat ditautkan bersama, bergantung pada jenis integrasi yang developer tawarkan ke user, dan user harus memberikan izin untuk grup sifat tertaut tersebut agar dapat mengaktifkan integrasi tersebut. Jika tidak, pengguna memiliki kemampuan untuk memberikan izin untuk setiap grup ciri yang tidak ditautkan sesuai keinginan.
Aktifkan PCM
Untuk mengaktifkan tampilan PCM untuk user, ganti endpoint Google API OAuth 2.0 standar dengan endpoint OAuth baru ini untuk Permintaan Otorisasi:
https://nestservices.google.com/partnerconnections/project-id/auth
Gunakan parameter ini di URL:
Parameter | Deskripsi |
---|---|
redirect_uri |
URI yang akan mengarahkan user setelah otorisasi berhasil. |
client_id |
Client ID OAuth 2.0 dari Project Google Cloud Anda. Pastikan ini sama dengan yang dikaitkan dengan ID Project Anda. Perhatikan bahwa Client ID OAuth harus valid dan unik untuk project, dan tidak dapat dibagikan dengan projectlain. |
access_type |
Nilai yang akan digunakan: offline |
prompt |
Nilai yang akan digunakan: consent |
response_type |
Nilai yang akan digunakan: code Kode otorisasi diharapkan sebagai imbalan. |
scope |
Nilai yang akan digunakan: https://www.googleapis.com/auth/sdm.service
Cakupan SDM API. |
state |
Opsional. Nilai buram yang digunakan oleh klien developer untuk mempertahankan status antara permintaan dan callback. |
Contoh URL PCM:
https://nestservices.google.com/partnerconnections/
2f6989ca-c756-4625-8cdc-d5b1edfb2dcd/auth?
redirect_uri=https://www.example.com/api/link/M258KP8OWYZDVQ&
client_id=418235700063-sdkiav89orn5r1nvrcr5t210qqjimq8l.apps.googleusercontent.com&
access_type=offline&
prompt=consent&
response_type=code&
scope=https://www.googleapis.com/auth/sdm.service
Setelah user memberikan izin, Kode Otorisasi akan ditampilkan
sebagai parameter code
di URI pengalihan. Gunakan kode ini untuk mendapatkan token akses.
Menambahkan PCM ke aplikasi Anda
Di aplikasi Anda, tambahkan tampilan PCM menggunakan URL ini:
https://nestservices.google.com/partnerconnections
Saat user login, halaman ini akan menampilkan semuaDevice Access developer tertaut, serta daftar semua struktur dan perangkat dengan tombol untuk memberikan dan mencabut izin. user juga dapat memutuskan koneksi partner berdasarkan per partner dari halaman ini.
Aplikasi yang belum diverifikasi
SDM API menggunakan cakupan terbatas, yang berarti bahwa setiap aplikasi 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 di Google Cloud. Layar ini dapat
diabaikan dengan mengklik opsi Lanjutan, lalu mengklik Buka Project
Name (tidak aman).
Lihat Layar aplikasi yang belum terverifikasi untuk mengetahui informasi selengkapnya.
Token akses
Semua panggilan ke SDM API untuk mengelola struktur dan perangkat yang diotorisasi harus menggunakan token akses unik yang diberikan ke developer oleh user selama otorisasi. Token akses berjangka pendek dan harus diperbarui secara rutin untuk memastikan akses yang berkelanjutan.
Jika a user nanti mencabut developer akses ke struktur atau perangkat, masa berlaku token akses akan segera berakhir dan tidak dapat diperbarui, dan developer tidak akan dapat lagi memanggil SDM API atas nama usertersebut.
Mencabut otorisasi akun
Ada beberapa cara untuk membatalkan otorisasi akun Google. Metode yang direkomendasikan adalah agar pengguna menggunakan Partner Connections Manager (PCM) untuk mengubah izin akun. Lihat Mengubah izin akun untuk mengetahui informasi selengkapnya. Token akses juga dapat dicabut dengan metode berikut:
Pengguna dapat mencabutnya di https://myaccount.google.com/permissions.
Developer dapat meneruskan token akses ke endpoint
https://oauth2.googleapis.com/revoke
. Untuk mempelajari Google OAuth dan pencabutan token lebih lanjut, lihat Mencabut token.
Webview tersemat
Kebijakan browser aman baru melarang permintaan Google OAuth di library browser tersematan yang biasanya disebut sebagai webview tersemat. Semua webview tersemat akan diblokir. Library webview sematan bermasalah karena memungkinkan developer jahat untuk menyadap dan mengubah komunikasi antara Google dan penggunanya. WebView tersemat tidak hanya memengaruhi keamanan akun, tetapi juga dapat memengaruhi kegunaan aplikasi Anda.
Jika Anda terpengaruh oleh kebijakan ini, lihat artikel dukungan Perubahan keamanan mendatang pada endpoint otorisasi OAuth 2.0 Google di webview tersemat.