Otorisasi

Developerdapat menggunakan SDM API untuk melihat dan mengelola perangkat Google Nest atas nama user. SDM API memvalidasi bahwa user mengelola perangkat yang diakses, yang user telah mengizinkan developer membaca atau menulis ciri-ciri setiap perangkat, dan developer telah diberi akses untuk akses ke setiap ciri.

Agar dapat menggunakan SDM API untuk pengelolaan perangkat,developer harus terlebih dahulu diberi otorisasi oleh user.

Untuk mendapatkan panduan tentang proses otorisasi, lihat halaman Mengizinkan Akun dalam Device Access panduan Memulai Cepat.

Untuk mendapatkan bantuan dalam memecahkan masalah error otorisasi, lihat Error Otorisasi.

Alur OAuth

SDM API menggunakan alur Google OAuth berkaki tiga untuk user otorisasi:

  • Saat a user ingin memberi otorisasi a developer untuk pengelolaan perangkat Nest, developer 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 diberikanuser ke developer. user memilih apa yang akan diberikan akses selama proses otorisasi dan mempertahankan kontrol akses tersebut.

Opsi yang dipilih dalam peta PCM ke grup fitur, yang merupakan kumpulan karakteristik yang akan developer diberi akses. Beberapa grup fitur ditautkan bersama-sama, bergantung pada jenis integrasi yang ditawarkandeveloper ke user, dan userharus memberikan izin bagi grup fitur tersebut untuk mengaktifkan integrasi tersebut. Jika tidak, pengguna dapat memberikan izin untuk setiap grup fitur yang dibatalkan tautannya sesuai keinginan.

Aktifkan PCM

Untuk mengaktifkan tampilan PCM bagi user, ganti endpoint OAuth 2.0 Google API standar dengan endpoint OAuth baru ini untuk Permintaan Otorisasi:

https://nestservices.google.com/partnerconnections/project-id/auth

Gunakan parameter berikut 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 adalah ID yang sama yang dikaitkan dengan Project ID Anda. Perlu diperhatikan bahwa Client ID OAuth harus valid dan unik untuk project, serta tidak dapat dibagikan ke projectlainnya.
access_type Nilai untuk digunakan: offline
prompt Nilai untuk digunakan: consent
response_type Nilai yang akan digunakan: code
Kode otorisasi diharapkan.
scope Nilai yang akan digunakan: https://www.googleapis.com/auth/sdm.service
Cakupan SDM API.
state Opsional. Nilai buram yang digunakan oleh developer klien untuk mempertahankan status antara permintaan dan callback.
linking_token Token penautan yang diperoleh dari perintah GetToken.

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 dalam URI pengalihan. Gunakan kode ini untuk mendapatkan token akses.

Untuk mendapatkan bantuan terkait error apa pun yang ditemukan saat mengakses PCM, lihat Referensi Error Partner Connections Manager (PCM).

Menambahkan PCM ke aplikasi

Di aplikasi Anda, tambahkan tampilan PCM menggunakan URL ini:

https://nestservices.google.com/partnerconnections

Saat user login, halaman ini akan menampilkan semuaDevice Access developeryang ditautkan, serta daftar semua struktur dan perangkat dengan tombol untuk memberikan dan mencabut izin. user juga dapat memutuskan koneksi partner per partner dari halaman ini.

Aplikasi yang belum diverifikasi

SDM API menggunakan cakupan yang dibatasi, yang berarti bahwa semua aplikasi yang menggunakan cakupan ini selama otorisasi akan menjadi "tidak 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 Advanced, lalu mengklik Go to Project Name (tidak aman).

Lihat Layar aplikasi yang belum diverifikasi 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 berumur pendek dan harus diperbarui secara rutin untuk memastikan akses berkelanjutan.

Jika a user kemudian mencabut developer akses ke struktur atau perangkat, token akses akan langsung habis masa berlakunya dan tidak dapat dimuat ulang, dan developer tidak akan dapat lagi memanggil SDM API atas nama tersebut user.

Mencabut otorisasi akun

Ada beberapa cara untuk membatalkan otorisasi akun Google. Metode yang lebih disukai adalah pengguna menggunakan Partner Connections Manager (PCM) untuk mengubah izin akun. Lihat Mengubah izin akun untuk informasi selengkapnya. Token akses juga dapat dicabut dengan metode berikut:

  1. Pengguna dapat mencabut di https://myaccount.google.com/permissions.

  2. 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 OAuth Google di library browser sematan yang biasa disebut sebagai webview sematan. Semua tampilan web tersemat akan diblokir. Library webview tersemat bermasalah karena library tersebut memungkinkan developer jahat mencegat dan mengubah komunikasi antara Google dan penggunanya. Webview sematan tidak hanya memengaruhi keamanan akun, tetapi juga memengaruhi kegunaan aplikasi Anda.

Jika Anda terpengaruh oleh kebijakan ini, baca artikel dukungan Perubahan keamanan mendatang pada OAuth 2.0 otorisasi Google di webview yang disematkan.