Panduan ini menjelaskan cara menggunakan OAuth 2.0 dengan Kredensial Google untuk akses Chat API. Mengautentikasi dan memberi otorisasi dengan kredensial pengguna memungkinkan aplikasi Chat mengakses data pengguna dan melakukan operasi atas nama pengguna yang diotentikasi. Dengan melakukan otentikasi pada , aplikasi memiliki izin yang sama dengan pengguna tersebut dan dapat melakukan tindakan seolah-olah hal itu dilakukan oleh pengguna tersebut.
Setelah melakukan autentikasi dan memberi otorisasi panggilan API dengan kredensial pengguna, aplikasi Chat dapat melakukan berikut ini:
- Membuat ruang Chat.
- Menambahkan pengguna ke ruang Chat dan percakapan grup.
- Gunakan data pengguna di Workspace API lainnya seperti berikut:
- Membuat peristiwa di Google Kalender.
- Item log di Google Sheets.
- Kirim email dengan Gmail.
Saat aplikasi melakukan tindakan dengan autentikasi pengguna (seperti membuat ruang), Google Chat menampilkan pesan atribusi yang memberi tahu pengguna nama aplikasi yang melakukan tindakan untuk pengguna yang memberinya otorisasi.
![Aplikasi Google Chat membuat ruang untuk pengguna.](https://developers-dot-devsite-v2-prod.appspot.com/static/workspace/chat/images/auth-user-create-space.png?authuser=7&hl=id)
Untuk mempelajari lebih lanjut kapan aplikasi Chat memerlukan autentikasi dan jenis otentikasi apa yang digunakan, lihat Jenis autentikasi yang diperlukan di ringkasan autentikasi dan otorisasi Chat API.
Mengautentikasi dan memberi otorisasi menggunakan delegasi tingkat domain
Jika Anda administrator domain, Anda dapat memberikan delegasi tingkat domain untuk mengizinkan akun layanan aplikasi mengakses data tanpa mengharuskan setiap pengguna untuk memberikan persetujuan. Setelah Anda mengkonfigurasi delegasi tingkat domain, tindakan akun layanan dapat meniru identitas akun pengguna. Meskipun akun layanan digunakan untuk otentikasi, delegasi tingkat domain menyamar sebagai pengguna dan karenanya dianggap sebagai autentikasi pengguna. Fungsi apa pun yang memerlukan pengguna otentikasi, Anda dapat menggunakan delegasi tingkat domain.
Mengautentikasi dan memberi otorisasi menggunakan hak istimewa administrator
Jika Anda adalah administrator domain atau administrator yang didelegasikan dengan hak istimewa administrator, Anda dapat mengautentikasi dan mengizinkan panggilan ke Google Chat API dengan hak istimewa administrator dengan menyetel kolom use_admin_access
dalam permintaan metode yang berlaku. Untuk informasi selengkapnya, lihat dokumentasi referensi API.
Perlu diperhatikan bahwa saat aplikasi Google Chat melakukan tindakan dengan hak istimewa administrator, Chat tidak akan memberi tahu pengguna nama aplikasi Chat yang melakukan tindakan tersebut atau nama administrator yang memberinya otorisasi, tetapi hanya memberi tahu pengguna bahwa tindakan tersebut dilakukan oleh administrator organisasi mereka.
Prasyarat
Java
- Sebuah Business atau Enterprise Akun Google Workspace yang memiliki akses ke Google Chat.
- Buat project Google Cloud.
- Aktifkan dan konfigurasikan Google Chat API dengan nama, ikon, dan deskripsi untuk aplikasi Chat Anda.
- JDK 1.7 atau yang lebih baru
- Alat pengelolaan paket Maven
-
Project Maven yang diinisialisasi. Untuk menginisialisasi project baru, jalankan perintah berikut di
antarmuka command line:
mvn archetype:generate -DgroupId=com.google.chat.app.authsample -DartifactId=auth-sample-app -DarchetypeArtifactId=maven-archetype-quickstart -DarchetypeVersion=1.4 -DinteractiveMode=false
Python
- Sebuah Business atau Enterprise Akun Google Workspace yang memiliki akses ke Google Chat.
- Buat project Google Cloud.
- Aktifkan dan konfigurasikan Google Chat API dengan nama, ikon, dan deskripsi untuk aplikasi Chat Anda.
- Python 3.6 atau yang lebih baru
- Alat pengelolaan paket pip
Node.js
- Sebuah Business atau Enterprise Akun Google Workspace yang memiliki akses ke Google Chat.
- Buat project Google Cloud.
- Aktifkan dan konfigurasikan Google Chat API dengan nama, ikon, dan deskripsi untuk aplikasi Chat Anda.
- Node.js 14 atau yang lebih baru
- npm alat pengelolaan paket
-
Project Node.js yang diinisialisasi. Untuk menginisialisasi proyek baru, buat dan
beralih ke folder baru, lalu jalankan perintah berikut di antarmuka command line Anda:
npm init
Apps Script
- Sebuah Business atau Enterprise Akun Google Workspace yang memiliki akses ke Google Chat.
- Buat project Google Cloud.
- Aktifkan dan konfigurasikan Google Chat API dengan nama, ikon, dan deskripsi untuk aplikasi Chat Anda.
- Membuat project Apps Script mandiri, dan aktifkan Layanan Chat Lanjutan.
Langkah 1: Konfigurasikan layar izin OAuth, tentukan cakupan, dan daftarkan aplikasi
Saat Anda menggunakan OAuth 2.0 untuk otorisasi, Google akan menampilkan layar izin untuk pengguna termasuk ringkasan project Anda, kebijakannya, dan otorisasi baru. Mengonfigurasi layar izin OAuth aplikasi Anda menentukan apa yang ditampilkan Google kepada pengguna dan pengulas aplikasi, serta mendaftarkan aplikasi Anda sehingga Anda dapat memublikasikannya nanti.
Semua aplikasi yang menggunakan OAuth 2.0 memerlukan konfigurasi layar izin, tetapi Anda hanya perlu mencantumkan cakupan untuk aplikasi yang digunakan oleh orang di luar Google Workspace Anda organisasi/pengaturan.
Di konsol Google Cloud, buka Menu > API & Layanan > Layar izin OAuth.
Pilih jenis pengguna untuk aplikasi Anda, lalu klik Create.
Lengkapi formulir pendaftaran aplikasi, lalu klik Simpan dan Lanjutkan.
Klik Add or Remove Scopes. Tambahkan dan verifikasi cakupan otorisasi yang diperlukan oleh aplikasi Anda, klik Update, lalu klik Save and Continue.
Tinjau ringkasan pendaftaran aplikasi Anda. Klik Edit untuk membuat perubahan, atau klik Kembali ke Dasbor.
Langkah 2: Buat kredensial client ID OAuth di Konsol Google Cloud
Untuk mengautentikasi sebagai pengguna akhir dan mengakses data pengguna di aplikasi, Anda harus buat satu atau beberapa Client ID OAuth 2.0. Client ID digunakan untuk mengidentifikasi aplikasi tunggal ke server OAuth Google. Jika aplikasi Anda berjalan di beberapa yang berbeda—seperti Android, iOS, dan Web—Anda perlu membuat client ID terpisah untuk setiap platform.
Membuat kredensial client ID OAuth
Pilih jenis aplikasi untuk mengetahui petunjuk spesifik tentang cara membuat client ID OAuth:
Aplikasi web
- Di konsol Google Cloud, buka Menu > APIs & Layanan > Kredensial.
- Klik Create Credentials > OAuth client ID.
- Klik Jenis aplikasi > Aplikasi web.
- Di kolom Name, ketik nama untuk kredensial tersebut. Nama ini hanya ditampilkan di Konsol Google Cloud.
- Tambahkan URI yang diberi otorisasi yang terkait dengan aplikasi Anda:
- Aplikasi sisi klien (JavaScript)–Di bagian Asal JavaScript yang diotorisasi, klik Tambahkan URI. Kemudian, masukkan URI yang akan digunakan untuk permintaan browser. Atribut ini mengidentifikasi domain tempat aplikasi Anda dapat mengirim permintaan API ke server OAuth 2.0.
- Aplikasi sisi server (Java, Python, dan lainnya)–Di bagian Authorized redirect URI, klik Add URI. Kemudian, masukkan URI endpoint yang dapat menerima respons dari server OAuth 2.0.
- Klik Buat. Layar yang dibuat klien OAuth akan muncul, yang menunjukkan Client ID dan Rahasia klien baru Anda.
Catat Client-ID-nya. Rahasia klien tidak digunakan untuk aplikasi Web.
- Klik Oke. Kredensial yang baru dibuat akan muncul di bagian Client ID OAuth 2.0.
Android
- Di konsol Google Cloud, buka Menu > APIs & Layanan > Kredensial.
- Klik Create Credentials > OAuth client ID.
- Klik Jenis aplikasi > Android.
- Di bagian "Nama" , ketik nama untuk kredensial tersebut. Nama ini hanya ditampilkan di Konsol Google Cloud.
- Di bagian "Package name" , masukkan nama paket dari file
AndroidManifest.xml
Anda. - Di "Sidik jari sertifikat SHA-1" masukkan sidik jari sertifikat SHA-1 yang dihasilkan.
- Klik Buat. Layar yang dibuat klien OAuth akan muncul, yang menampilkan Client ID baru Anda.
- Klik Oke. Kredensial yang baru dibuat akan muncul di bagian "Client ID OAuth 2.0".
iOS
- Di konsol Google Cloud, buka Menu > APIs & Layanan > Kredensial.
- Klik Create Credentials > OAuth client ID.
- Klik Jenis aplikasi > iOS.
- Di bagian "Nama" , ketik nama untuk kredensial tersebut. Nama ini hanya ditampilkan di Konsol Google Cloud.
- Di "ID Paket" , masukkan ID paket seperti yang tercantum dalam file
Info.plist
aplikasi. - Opsional: Jika aplikasi Anda muncul di Apple App Store, masukkan ID App Store.
- Opsional: Di bagian "Team ID" , masukkan string unik 10 karakter, yang dibuat oleh Apple dan ditetapkan ke tim Anda.
- Klik Buat. Layar yang dibuat klien OAuth akan muncul, yang menunjukkan Client ID dan Rahasia klien baru Anda.
- Klik Oke. Kredensial yang baru dibuat akan muncul di bagian "Client ID OAuth 2.0".
Aplikasi Chrome
- Di konsol Google Cloud, buka Menu > APIs & Layanan > Kredensial.
- Klik Create Credentials > OAuth client ID.
- Klik Jenis aplikasi > Aplikasi Chrome.
- Di bagian "Nama" , ketik nama untuk kredensial tersebut. Nama ini hanya ditampilkan di Konsol Google Cloud.
- Di "Application ID" , masukkan string ID 32 karakter unik untuk aplikasi Anda. Anda dapat menemukan nilai ID ini di URL Chrome Web Store aplikasi dan di Dasbor Developer Chrome Web Store.
- Klik Buat. Layar yang dibuat klien OAuth akan muncul, yang menunjukkan Client ID dan Rahasia klien baru Anda.
- Klik Oke. Kredensial yang baru dibuat akan muncul di bagian "Client ID OAuth 2.0".
Aplikasi desktop
- Di konsol Google Cloud, buka Menu > APIs & Layanan > Kredensial.
- Klik Create Credentials > OAuth client ID.
- Klik Jenis aplikasi > Aplikasi desktop.
- Di kolom Name, ketik nama untuk kredensial tersebut. Nama ini hanya ditampilkan di Konsol Google Cloud.
- Klik Buat. Layar yang dibuat klien OAuth akan muncul, yang menunjukkan Client ID dan Rahasia klien baru Anda.
- Klik Oke. Kredensial yang baru dibuat akan muncul di bagian Client ID OAuth 2.0.
TV & Perangkat Input terbatas
- Di konsol Google Cloud, buka Menu > APIs & Layanan > Kredensial.
- Klik Create Credentials > OAuth client ID.
- Klik Jenis aplikasi > TV & Perangkat Input terbatas.
- Di bagian "Nama" , ketik nama untuk kredensial tersebut. Nama ini hanya ditampilkan di Konsol Google Cloud.
- Klik Buat. Layar yang dibuat klien OAuth akan muncul, yang menunjukkan Client ID dan Rahasia klien baru Anda.
- Klik Oke. Kredensial yang baru dibuat akan muncul di bagian "Client ID OAuth 2.0".
Universal Windows Platform (UWP)
- Di konsol Google Cloud, buka Menu > APIs & Layanan > Kredensial.
- Klik Create Credentials > OAuth client ID.
- Klik Jenis aplikasi > Universal Windows Platform (UWP).
- Di bagian "Nama" , ketik nama untuk kredensial tersebut. Nama ini hanya ditampilkan di Konsol Google Cloud.
- Di "ID Toko" masukkan nilai ID Microsoft Store 12 karakter unik untuk aplikasi Anda. Anda dapat menemukan ID ini di URL Microsoft Store aplikasi Anda dan di Pusat Partner.
- Klik Buat. Layar yang dibuat klien OAuth akan muncul, yang menunjukkan Client ID dan Rahasia klien baru Anda.
- Klik Oke. Kredensial yang baru dibuat akan muncul di bagian "Client ID OAuth 2.0".
Mendownload file JSON rahasia klien
File rahasia klien adalah representasi JSON dari client ID OAuth yang dapat direferensikan oleh aplikasi Chat Anda ketika memberikan kredensial.
Di konsol Google Cloud, buka Menu > API & Layanan > Kredensial.
Pada Client ID OAuth 2.0, klik client ID yang Anda buat.
Klik Download JSON.
Simpan file sebagai
client_secrets.json
.
Langkah 3: Instal library klien Google dan dependensi lainnya
Instal library klien Google dan dependensi lain yang diperlukan untuk project.
Java
Untuk menambahkan library klien Google dan dependensi lain yang diperlukan ke
pada project Maven, edit file pom.xml
di direktori project Anda lalu tambahkan
dependensi berikut:
<dependencies>
<!-- ... existing dependencies ... -->
<dependency>
<groupId>com.google.apis</groupId>
<artifactId>google-api-services-chat</artifactId>
<version>v1-rev20230905-2.0.0</version>
</dependency>
<dependency>
<groupId>com.google.auth</groupId>
<artifactId>google-auth-library-oauth2-http</artifactId>
<version>1.19.0</version>
</dependency>
<dependency>
<groupId>com.google.oauth-client</groupId>
<artifactId>google-oauth-client-jetty</artifactId>
<version>1.34.1</version>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.10.1</version>
</dependency>
</dependencies>
Python
Jika Anda belum menginstal library klien Google untuk Python, jalankan perintah berikut di antarmuka command line Anda:
pip3 install --upgrade google-api-python-client google-auth-oauthlib
Node.js
Untuk menambahkan library klien Google dan dependensi lain yang diperlukan ke project Node.js, beralihlah ke direktori project Anda dan jalankan perintah di antarmuka command line Anda:
npm install "@googleapis/chat" open server-destroy
Apps Script
Contoh ini menggunakan Layanan Chat lanjutan untuk memanggil Google Chat API. Untuk mengaktifkan layanan bagi Project Apps Script:
- Di sebelah kiri, klik Editor .
- Di sebelah kiri, di samping Layanan, klik Tambahkan layanan .
- Pilih Google Chat API.
- Di Version, pilih v1.
- Klik Tambahkan.
Anda dapat menggunakan bahasa apa pun yang didukung oleh library klien.
Langkah 4: Tulis skrip yang memanggil Chat API
Memanggil API dengan otorisasi OAuth merupakan proses multi-langkah. Di web atau aplikasi desktop, prosesnya umumnya sebagai berikut:
- Aplikasi mengarahkan pengguna ke halaman otorisasi yang meminta akses ke pengguna data yang ditetapkan oleh cakupan otorisasi. Aplikasi mengidentifikasi dirinya dengan klien Kredensial ID.
- Pengguna meninjau izin yang diminta oleh aplikasi dan menyetujui permintaan.
- Server autentikasi Google mengalihkan browser ke HTTP aplikasi endpoint beserta kode otorisasi.
- Aplikasi mengirimkan permintaan lain ke server otorisasi Google untuk tukar kode otorisasi dengan token akses.
- Aplikasi menggunakan token akses untuk memanggil API atas nama pengguna.
Untuk mempelajari proses otorisasi OAuth lebih lanjut, lihat Panduan Penggunaan OAuth 2.0 untuk Mengakses Google API.
Contoh kode berikut di Java, Python, dan Node.js menggunakan library klien untuk menjalankan alur otorisasi OAuth. Ini membuka server HTTP lokal untuk menerima kode otorisasi kembali dari server otorisasi, yang kemudian pertukaran token akses. Dalam contoh kode Apps Script, alur otorisasi ini ditangani oleh Apps Script.
Setelah menyelesaikan alur otentikasi, skrip akan melakukan otentikasi dengan Chat API menggunakan token akses pengguna, dan kemudian membuat sebuah spasi.
Java
- Di direktori project, buka file tersebut
src/main/java/com/google/chat/app/authsample/App.java
. Ganti konten di
App.java
dengan kode berikut:package com.google.chat.app.authsample; import com.google.api.client.auth.oauth2.Credential; import com.google.api.client.extensions.java6.auth.oauth2.AuthorizationCodeInstalledApp; import com.google.api.client.extensions.jetty.auth.oauth2.LocalServerReceiver; import com.google.api.client.googleapis.auth.oauth2.GoogleAuthorizationCodeFlow; import com.google.api.client.googleapis.auth.oauth2.GoogleClientSecrets; import com.google.api.client.googleapis.javanet.GoogleNetHttpTransport; import com.google.api.client.http.HttpTransport; import com.google.api.client.json.JsonFactory; import com.google.api.client.json.gson.GsonFactory; import com.google.api.client.util.store.FileDataStoreFactory; import com.google.api.services.chat.v1.HangoutsChat; import com.google.api.services.chat.v1.model.Space; import java.io.InputStreamReader; import java.util.Collection; import java.util.Collections; /** * Authenticates with Chat API via user credentials, then creates a Chat space. */ public class App { // Application OAuth credentials. private static final String KEYS_RESOURCE_URI = "/client_secrets.json"; // Define your app's authorization scopes. private static final Collection<String> SCOPES = Collections.singleton("https://www.googleapis.com/auth/chat.spaces.create"); // Directory to store user credentials. private static final java.io.File DATA_STORE_DIR = new java.io.File(System.getProperty("user.home"), ".store/auth-sample-app"); // Global instance of the JSON factory. private static final JsonFactory JSON_FACTORY = GsonFactory.getDefaultInstance(); // Global instance of the HTTP transport. private static HttpTransport httpTransport; // Global instance of the DataStoreFactory. The best practice is to make it a single // globally shared instance across your application. private static FileDataStoreFactory dataStoreFactory; public static void main( String[] args ) { try { // Run app. httpTransport = GoogleNetHttpTransport.newTrustedTransport(); dataStoreFactory = new FileDataStoreFactory(DATA_STORE_DIR); Credential userCredential = authorize(); Space response = App.createChatSpace(userCredential); // Print details about the created space. System.out.println(response); } catch (Exception e) { e.printStackTrace(); } } /** * Authorizes the installed application to access user's protected data. */ private static Credential authorize() throws Exception { // Load client secrets. GoogleClientSecrets clientSecrets = GoogleClientSecrets.load(JSON_FACTORY, new InputStreamReader(App.class.getResourceAsStream("/client_secrets.json"))); // Set up authorization code flow. GoogleAuthorizationCodeFlow flow = new GoogleAuthorizationCodeFlow.Builder( httpTransport, JSON_FACTORY, clientSecrets, SCOPES) .setDataStoreFactory(dataStoreFactory) .build(); // Authorize. return new AuthorizationCodeInstalledApp(flow, new LocalServerReceiver()).authorize("user"); } /** * Creates a Chat space. */ private static Space createChatSpace(Credential userCredential) throws Exception { // Build the Chat API client and authenticate with the user account. HangoutsChat chatService = new HangoutsChat.Builder( httpTransport, JSON_FACTORY, userCredential) .setApplicationName("auth-sample-app") .build(); // Create a Chat space. Space space = new Space() // To create a named space, set spaceType to SPACE. .setSpaceType("SPACE") // The user-visible name of the space. .setDisplayName("API-made"); return chatService.spaces().create(space).execute(); } }
Buat subdirektori baru bernama
resources
dalam direktori project Anda.Salin file
client_secrets.json
ke subdirektoriresources
.Untuk mengonfigurasi Maven agar menyertakan file rahasia klien dalam paket project, edit file
pom.xml
di direktori project Anda dan tambahkan berikut ini konfigurasi ke bagian<build>
:<build> <!-- ... existing configurations ... --> <resources> <resource> <directory>resources</directory> </resource> </resources> </build>
Untuk mengonfigurasi Maven agar menyertakan dependensi dalam paket project dan untuk mengeksekusi class utama aplikasi Anda, edit file
pom.xml
di pada direktori project dan tambahkan konfigurasi berikut ke Bagian<plugins>
:<plugins> <!-- ... existing configurations ... --> <plugin> <artifactId>maven-assembly-plugin</artifactId> <configuration> <archive> <manifest> <mainClass>com.google.chat.app.authsample.App</mainClass> </manifest> </archive> <descriptorRefs> <descriptorRef>jar-with-dependencies</descriptorRef> </descriptorRefs> </configuration> </plugin> </plugins>
Python
Simpan kode berikut dalam file bernama
chat_space_create_named.py
di direktori yang sama yang menyimpanclient_secrets.json
:from google_auth_oauthlib.flow import InstalledAppFlow from googleapiclient.discovery import build # Define your app's authorization scopes. # When modifying these scopes, delete the file token.json, if it exists. SCOPES = ["https://www.googleapis.com/auth/chat.spaces.create"] def main(): ''' Authenticates with Chat API via user credentials, then creates a Chat space. ''' flow = InstalledAppFlow.from_client_secrets_file( 'client_secrets.json', SCOPES) creds = flow.run_local_server() # Build a service endpoint for Chat API. service = build('chat', 'v1', credentials=creds) # Use the service endpoint to call Chat API. result = service.spaces().create( # Details about the space to create. body = { # To create a named space, set spaceType to SPACE. 'spaceType': 'SPACE', # The user-visible name of the space. 'displayName': 'API-made' } ).execute() # Prints details about the created space. print(result) if __name__ == '__main__': main()
Node.js
Simpan kode berikut dalam file bernama
chat_space_create_named.js
di direktori yang sama yang menyimpan project Node.js danclient_secrets.json
:const fs = require('fs'); const path = require('path'); const http = require('http'); const url = require('url'); const destroyer = require('server-destroy'); const chat = require('@googleapis/chat'); // Application OAuth credentials. const keys = require('./client_secrets.json').installed; // Define your app's authorization scopes. // When modifying these scopes, delete the file token.json, if it exists. const scopes = ["https://www.googleapis.com/auth/chat.spaces.create"]; // Create a new OAuth2 client with the configured keys. const oauth2Client = new chat.auth.OAuth2( keys.client_id, keys.client_secret, 'http://localhost:3000' ); /** * Opens an HTTP server to accept the OAuth callback. * In this simple example, the only request to our webserver is to /?code=<code>. */ async function authenticate(scopes) { const opn = (await import('open')).default; return new Promise((resolve, reject) => { // Generate the URL for authorization. const authorizeUrl = oauth2Client.generateAuthUrl({ access_type: 'offline', scope: scopes.join(' '), }); // Start the HTTP server to listen for the callback. const server = http .createServer(async (req, res) => { try { const qs = new url.URL(req.url, 'http://localhost:3000').searchParams; res.end('Authentication successful! Please return to the console.'); server.destroy(); const { tokens } = await oauth2Client.getToken(qs.get('code')); oauth2Client.credentials = tokens; resolve(oauth2Client); } catch (e) { reject(e); } }) .listen(3000, () => { // Open the browser to the authorize URL to start the workflow. opn(authorizeUrl, { wait: false }).then(cp => cp.unref()); }); destroyer(server); }); } /** * Authenticates with Chat API via user credentials, then creates a Chat space. */ async function createSpace() { // Create the Chat API client and authenticate with the authorized user. const chatClient = await chat.chat({ version: 'v1', auth: oauth2Client }); // Call the Chat API to create a space. const result = await chatClient.spaces.create({ // Details about the space to create. requestBody: { // To create a named space, set spaceType to SPACE. 'spaceType': 'SPACE', // The user-visible name of the space. 'displayName': 'API-made' } }); return result; } // Authenticate the user, execute the function, // then print details about the created space. authenticate(scopes) .then(createSpace) .then(console.log);
Apps Script
Di editor Apps Script, edit file
appsscript.json
dan tambahkan cakupan OAuth yang diperlukan untuk memanggil API:"oauthScopes": [ "https://www.googleapis.com/auth/chat.spaces.create" ]
Simpan kode berikut dalam file bernama
ChatSpaceCreateNamed.gs
di Project Apps Script:/** * Authenticates with Chat API via user credentials, then creates a * Chat space. */ function createSpace() { try { // Details about the space to create. // To create a named space, set spaceType to SPACE. // The user-visible name of the space is displayName. const space = {'displayName': 'API-made', 'spaceType': 'SPACE'}; // Call Chat API with user credentials to create the space. const result = Chat.Spaces.create(space); // Log details about the created space. console.log(result); } catch (err) { // TODO (developer) - Handle exception console.log('Failed to create space with error %s', err.message); } }
Langkah 5: Jalankan contoh skrip
Untuk menjalankan contoh, dari baris perintah, arahkan ke direktori yang berisi file project Anda, lalu jalankan perintah berikut:
Java
mvn compile assembly:single
java -jar target/auth-sample-app-1.0-SNAPSHOT-jar-with-dependencies.jar
Python
python3 chat_space_create_named.py
Node.js
node chat_space_create_named.js
Apps Script
Buka file ChatSpaceCreateNamed.gs
di Apps Script
Editor, lalu klik Run.
Browser akan terbuka dan meminta Anda untuk login ke Akun Google Anda:
Setelah Anda login, layar izin OAuth akan muncul dan meminta Anda untuk memberikan izin akses ke aplikasi.
Setelah Anda memberikan izin, skrip akan memanggil
Chat API, yang merespons dengan membuat
Ruang chat dengan nama tampilan API-made
. Konsol akan mencetak
detail panggilan API. Untuk menemukan ruang, buka panel Ruang di
Google Chat.
Memecahkan masalah contoh
Saat menjalankan chat_space_create_named.py
, Anda mungkin menerima error yang menyatakan:
Expected a JSON object with a single property for a "web" or "installed" application
Pesan error ini berarti bahwa file client_secrets.json
yang Anda download
dari konsol Google Cloud tidak dimulai dengan "web"
atau "installed"
saat ini. Setelah mengautentikasi dengan file yang didownload, jika kode Anda tidak
simpan token akses di file baru seperti token.json
, maka token aksesnya akan
ditulis ke client_secrets.json
, yang dapat menyebabkan error ini selama sesi
percobaan otorisasi.
Untuk mengatasi error ini, download file rahasia klien dari Konsol Google Cloud lagi, dan simpan file baru di tempat file saat ini.
Topik terkait
Jika aplikasi Anda perlu terus menggunakan token pengguna di luar cakupan dari satu alur, ia dapat menyimpan token untuk digunakan kembali nanti. Dalam kasus ini, aplikasi Anda harus menangani token pengguna dengan aman dan menangani refresh pencabutan dan akhir masa berlaku token. Untuk informasi selengkapnya, lihat Panduan Praktik Terbaik Penggunaan OAuth 2.0.
Pelajari apa lagi yang dapat dilakukan Chat API dengan meninjau Dokumentasi referensi Chat API.