Bu kılavuzda, OAuth 2.0'ın kullanıcılarla nasıl kullanılabileceği açıklanmaktadır. Google kimlik bilgilerini şuna erişin: Chat API. Kimlik doğrulama ve yetkilendirme ile birlikte Chat uygulamaları, kullanıcı verilerine erişebilir ve gerekli işlemleri yapabilir. kimlik doğrulaması yapılmış kullanıcı adına işlem yapmasına olanak tanır. Kullanıcının kimliğini doğrulayarak uygulama söz konusu kullanıcıyla aynı izinlere sahiptir ve işlem gerçekleştirebilir sanki o kullanıcı tarafından gerçekleştirilmiş gibi.
Kimlik doğrulaması ve yetkilendirmeden sonra API çağrısına ayarlanırsa Chat uygulamaları takip etmek için:
- Chat alanları oluşturabilirsiniz.
- Kullanıcıları Chat alanlarına ve grup görüşmelerine ekleyebilirsiniz.
- Diğer Workspace API'lerinde aşağıdakiler gibi kullanıcı verileriyle çalışın:
- Etkinlik oluşturma Google Takvim'de bulabilirsiniz.
- Günlük öğeleri Google E-Tablolar'da açın.
- E-posta gönderin kullanabilirsiniz.
Bir uygulama, kullanıcı kimlik doğrulamasıyla işlem yaptığında (ör. alan oluşturma) durumlarda, Google Chat'te bir ilişkilendirme mesajı gösterilir. kullanıcılara söz konusu işlemi gerçekleştiren uygulamanın adını söyleyen yetki veren bir kullanıcı olabilir.
![Google Chat uygulaması, kullanıcı için alan oluşturur.](https://developers.google.cn/static/workspace/chat/images/auth-user-create-space.png?authuser=6&hl=tr)
Chat uygulamalarının ne zaman kimlik doğrulama gerektirdiği ve kimlik doğrulama türünü öğrenmek için Gerekli kimlik doğrulama türleri başlıklı makaleyi inceleyin.
Alan genelinde yetki kullanarak kimlik doğrulama ve yetkilendirme
Alan yöneticisiyseniz alan genelinde yetki verme bir uygulamanın hizmet hesabını kullanıcılarınızın hesaplarına erişecek şekilde yetkilendirmek için veri içermeyen her kullanıcının izin vermesi gerekir. Alan genelinde yetkiyi yapılandırdıktan sonra "the" hizmet hesabı, bir kullanıcı hesabının kimliğine bürünebilir. Hizmet hesabı, bir kullanıcının kimliğine bürünür ve bu nedenle kullanıcı kimlik doğrulaması olarak değerlendirilir. Kullanıcı gerektiren tüm işlevler alan genelinde yetkiyi kullanabilirsiniz.
Yönetici ayrıcalıklarını kullanarak kimlik doğrulama ve yetkilendirme
Alan yöneticisiyseniz veya yönetici ayrıcalıklarına sahip yetkili bir yöneticiyseniz geçerli yöntemler isteklerinde use_admin_access
alanını ayarlayarak Google Chat API çağrılarınızın kimliğini yönetici ayrıcalıklarıyla doğrulayabilir ve bu çağrıları yetkilendirebilirsiniz. Daha fazla bilgi için API referans belgelerini inceleyin.
Bir Google Chat uygulaması, yönetici ayrıcalıklarına sahip bir işlem gerçekleştirdiğinde Chat, kullanıcılara işlemi gerçekleştiren Chat uygulamasının adını veya uygulamayı yetkilendiren yöneticinin adını söylemez, kullanıcılara bu işlemin yalnızca kuruluş yöneticileri tarafından gerçekleştirildiğini bildirir.
Ön koşullar
Java
- İşletme veya Kuruluş Şuna erişimi olan Google Workspace hesabı: Google Chat.
- Bir Google Cloud projesi oluşturun.
- Google Chat API'yi etkinleştirin ve yapılandırın. Bunun için bir ad girin, Chat uygulamanızın simgesi ve açıklaması.
- JDK 1.7 veya üzeri
- Maven paket yönetim aracı
-
Başlatılmış bir Maven projesi. Yeni bir projeyi ilk kullanıma hazırlamak için
komut satırı arayüzü:
mvn archetype:generate -DgroupId=com.google.chat.app.authsample -DartifactId=auth-sample-app -DarchetypeArtifactId=maven-archetype-quickstart -DarchetypeVersion=1.4 -DinteractiveMode=false
Python
- İşletme veya Kuruluş Şuna erişimi olan Google Workspace hesabı: Google Chat.
- Bir Google Cloud projesi oluşturun.
- Google Chat API'yi etkinleştirin ve yapılandırın. Bunun için bir ad girin, Chat uygulamanızın simgesi ve açıklaması.
- Python 3.6 veya sonraki sürümler
- pip paket yönetim aracı
Node.js
- İşletme veya Kuruluş Şuna erişimi olan Google Workspace hesabı: Google Chat.
- Bir Google Cloud projesi oluşturun.
- Google Chat API'yi etkinleştirin ve yapılandırın. Bunun için bir ad girin, Chat uygulamanızın simgesi ve açıklaması.
- Node.js 14 veya sonraki sürümler
- npm paket yönetim aracı
-
Başlatılmış bir Node.js projesi. Yeni bir projeyi ilk kullanıma hazırlamak için, proje başlatma belgesinde
yeni bir klasöre geçin, ardından komut satırı arayüzünüzde aşağıdaki komutu çalıştırın:
npm init
Apps Komut Dosyası
- İşletme veya Kuruluş Şuna erişimi olan Google Workspace hesabı: Google Chat.
- Bir Google Cloud projesi oluşturun.
- Google Chat API'yi etkinleştirin ve yapılandırın. Bunun için bir ad girin, Chat uygulamanızın simgesi ve açıklaması.
- Bağımsız bir Apps Komut Dosyası projesi oluşturun, ve Gelişmiş Sohbet Hizmeti'ni etkinleştirin.
1. adım: OAuth izin ekranını yapılandırın, kapsamları belirtin ve uygulamanızı kaydedin
Yetkilendirme için OAuth 2.0'ı kullandığınızda Google, projenizin özetini ve istenen bilgileri içeren yetkilendirme kapsamları. Uygulamanızın OAuth izin ekranını yapılandırma Google'ın kullanıcılara ve uygulama incelemecilerine neler gösterdiğini tanımlar ve uygulamanızı kaydeder Böylece daha sonra yayınlayabilirsiniz.
OAuth 2.0 kullanan tüm uygulamalar için bir izin ekranı yapılandırması gerekir, ancak Google Workspace dışındaki kişiler tarafından kullanılan uygulamalar için kapsamları listelemeniz gerekiyor kurum içinde tutmaktır.
Google Cloud konsolunda Menü'ye gidin > API'lar ve Hizmetler > OAuth izin ekranı.
Uygulamanızın kullanıcı türünü seçip Oluştur'u tıklayın.
Uygulama kayıt formunu doldurup Kaydet ve Devam Et'i tıklayın.
Kapsam Ekle veya Kaldır'ı tıklayın. izin kapsamlarını ayarlamak için Güncelle'yi, ardından Kaydet ve Devam Et'i tıklayın.
Uygulama kaydı özetinizi inceleyin. Değişiklik yapmak için Düzenle'yi tıklayın veya Kontrol Paneline Dön'ü tıklayın.
2. Adım: Google Cloud Console'da OAuth istemci kimliği kimlik bilgilerini oluşturun
Son kullanıcı olarak kimlik doğrulamak ve uygulamanızdaki kullanıcı verilerine erişmek için şunları yapmanız gerekir: Bir veya daha fazla OAuth 2.0 İstemci Kimliği oluşturun. Client-ID, bir tek bir uygulamayı Google'ın OAuth sunucularına göndermesini sağlar. Uygulamanız birden fazla cihazda çalışıyorsa platformlar (ör. Android, iOS ve web) için ayrı bir istemci kimliği oluşturmanız gerekir. her platform için geçerli.
OAuth istemci kimliği kimlik bilgileri oluşturma
OAuth istemci kimliğinin nasıl oluşturulacağına ilişkin talimatlar için uygulama türünüzü seçin:
Web uygulaması
- Google Cloud konsolunda Menü > API'ler ve Hizmetler > Kimlik bilgileri.
- Kimlik Bilgisi Oluştur > OAuth istemci kimliği'ni tıklayın.
- Uygulama türü > Web uygulaması'nı tıklayın.
- Ad alanına kimlik bilgisi için bir ad yazın. Bu ad yalnızca Google Cloud konsolunda gösterilir.
- Uygulamanızla ilgili yetkili URI'ler ekleyin:
- İstemci tarafı uygulamalar (JavaScript): Yetkili JavaScript kaynakları altında, URI ekle'yi tıklayın. Ardından, tarayıcı istekleri için kullanılacak bir URI girin. Bu, uygulamanızın OAuth 2.0 sunucusuna API istekleri gönderebileceği alan adlarını tanımlar.
- Sunucu tarafı uygulamalar (Java, Python ve daha fazlası): Yetkili yönlendirme URI'leri bölümünde URI ekle'yi tıklayın. Ardından, OAuth 2.0 sunucusunun yanıt gönderebileceği bir uç nokta URI'si girin.
- Oluştur'u tıklayın. Yeni İstemci Kimliğiniz ve İstemci sırrınızın gösterildiği, OAuth istemcisi oluşturuldu ekranı görüntülenir.
İstemci kimliğini not edin. İstemci gizli anahtarları web uygulamaları için kullanılmaz.
- Tamam'ı tıklayın. Yeni oluşturulan kimlik bilgisi OAuth 2.0 İstemci Kimlikleri altında görünür.
Android
- Google Cloud konsolunda Menü > API'ler ve Hizmetler > Kimlik bilgileri.
- Kimlik Bilgisi Oluştur > OAuth istemci kimliği'ni tıklayın.
- Uygulama türü > Android'i tıklayın.
- "Ad" bölümünde alanına kimlik bilgisi için bir ad yazın. Bu ad yalnızca Google Cloud konsolunda gösterilir.
- "Paket adı" bölümünde alanına,
AndroidManifest.xml
dosyanızdaki paket adını girin. - "SHA-1 sertifika dijital parmak izi"nde alanına, oluşturulan SHA-1 sertifika parmak izinizi girin.
- Oluştur'u tıklayın. Yeni İstemci Kimliğinizin gösterildiği OAuth istemcisi oluşturuldu ekranı görünür.
- Tamam'ı tıklayın. Yeni oluşturulan kimlik bilgisi "OAuth 2.0 İstemci Kimlikleri" altında görünür.
iOS
- Google Cloud konsolunda Menü > API'ler ve Hizmetler > Kimlik bilgileri.
- Kimlik Bilgisi Oluştur > OAuth istemci kimliği'ni tıklayın.
- Uygulama türü > iOS'u tıklayın.
- "Ad" bölümünde alanına kimlik bilgisi için bir ad yazın. Bu ad yalnızca Google Cloud konsolunda gösterilir.
- "Paket kimliği"nde alanına, uygulamanın
Info.plist
dosyasında listelendiği şekilde paket tanımlayıcısını girin. - İsteğe bağlı: Uygulamanız Apple App Store'da görünüyorsa App Store kimliğini girin.
- İsteğe bağlı: "Ekip Kimliği"nde alanına, Apple tarafından oluşturulan ve ekibinize atanan 10 karakterlik benzersiz dizeyi girin.
- Oluştur'u tıklayın. Yeni İstemci Kimliğiniz ve İstemci sırrınızın gösterildiği, OAuth istemcisi oluşturuldu ekranı görüntülenir.
- Tamam'ı tıklayın. Yeni oluşturulan kimlik bilgisi "OAuth 2.0 İstemci Kimlikleri" altında görünür.
Chrome uygulaması
- Google Cloud konsolunda Menü > API'ler ve Hizmetler > Kimlik bilgileri.
- Kimlik Bilgisi Oluştur > OAuth istemci kimliği'ni tıklayın.
- Uygulama türü > Chrome uygulaması'nı tıklayın.
- "Ad" bölümünde alanına kimlik bilgisi için bir ad yazın. Bu ad yalnızca Google Cloud konsolunda gösterilir.
- "Uygulama Kimliği" bölümünde alanına, uygulamanızın 32 karakterlik benzersiz kimlik dizesini girin. Bu kimlik değerini, uygulamanızın Chrome Web Mağazası URL'sinde ve Chrome Web Mağazası Geliştirici Kontrol Paneli'nde bulabilirsiniz.
- Oluştur'u tıklayın. Yeni İstemci Kimliğiniz ve İstemci sırrınızın gösterildiği, OAuth istemcisi oluşturuldu ekranı görüntülenir.
- Tamam'ı tıklayın. Yeni oluşturulan kimlik bilgisi "OAuth 2.0 İstemci Kimlikleri" altında görünür.
Masaüstü uygulaması
- Google Cloud konsolunda Menü > API'ler ve Hizmetler > Kimlik bilgileri.
- Kimlik Bilgisi Oluştur > OAuth istemci kimliği'ni tıklayın.
- Uygulama türü > Masaüstü uygulaması'nı tıklayın.
- Ad alanına kimlik bilgisi için bir ad yazın. Bu ad yalnızca Google Cloud konsolunda gösterilir.
- Oluştur'u tıklayın. Yeni İstemci Kimliğiniz ve İstemci sırrınızın gösterildiği, OAuth istemcisi oluşturuldu ekranı görüntülenir.
- Tamam'ı tıklayın. Yeni oluşturulan kimlik bilgisi OAuth 2.0 İstemci Kimlikleri altında görünür.
TV'ler ve Sınırlı Giriş cihazları
- Google Cloud konsolunda Menü > API'ler ve Hizmetler > Kimlik bilgileri.
- Kimlik Bilgisi Oluştur > OAuth istemci kimliği'ni tıklayın.
- Uygulama türü > TV'ler ve Sınırlı Giriş cihazları.
- "Ad" bölümünde alanına kimlik bilgisi için bir ad yazın. Bu ad yalnızca Google Cloud konsolunda gösterilir.
- Oluştur'u tıklayın. Yeni İstemci Kimliğiniz ve İstemci sırrınızın gösterildiği, OAuth istemcisi oluşturuldu ekranı görüntülenir.
- Tamam'ı tıklayın. Yeni oluşturulan kimlik bilgisi "OAuth 2.0 İstemci Kimlikleri" altında görünür.
Evrensel Windows Platformu (UWP)
- Google Cloud konsolunda Menü > API'ler ve Hizmetler > Kimlik bilgileri.
- Kimlik Bilgisi Oluştur > OAuth istemci kimliği'ni tıklayın.
- Uygulama türü > Evrensel Windows Platformu (UWP) seçeneğini tıklayın.
- "Ad" bölümünde alanına kimlik bilgisi için bir ad yazın. Bu ad yalnızca Google Cloud konsolunda gösterilir.
- "Mağaza kimliği"nde alanına, uygulamanızın 12 karakterlik benzersiz Microsoft Store kimliği değerini girin. Bu kimliği, uygulamanızın Microsoft Store URL'sinde ve İş Ortağı Merkezi'nde bulabilirsiniz.
- Oluştur'u tıklayın. Yeni İstemci Kimliğiniz ve İstemci sırrınızın gösterildiği, OAuth istemcisi oluşturuldu ekranı görüntülenir.
- Tamam'ı tıklayın. Yeni oluşturulan kimlik bilgisi "OAuth 2.0 İstemci Kimlikleri" altında görünür.
İstemci gizli anahtarı JSON dosyasını indirme
İstemci gizli anahtarı dosyası, OAuth istemci kimliğinin JSON gösterimidir. Chat uygulamanızın şu durumlarda referans alabileceği kimlik bilgileri: hesap ekiplerinizle görüşün.
Google Cloud konsolunda Menü'ye gidin > API'lar ve Hizmetler > Kimlik bilgileri.
OAuth 2.0 Client IDs (OAuth 2.0 İstemci Kimlikleri) bölümünde, oluşturduğunuz istemci kimliğini tıklayın.
JSON'u indir'i tıklayın.
Dosyayı
client_secrets.json
olarak kaydedin.
3. adım: Google istemci kitaplığını ve diğer bağımlılıkları yükleyin
Google istemci kitaplığını ve proje için gereken diğer bağımlılıkları yükleyin.
Java
Google istemci kitaplıklarını ve diğer gerekli bağımlılıkları
Maven projesi için, projenizin dizininde pom.xml
dosyasını düzenleyin ve
bağımlılıkları olan
üçlü kısıtları içerir:
<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
Python için Google istemci kitaplıklarını henüz yüklemediyseniz komut satırı arayüzünüzde şu komutu kullanın:
pip3 install --upgrade google-api-python-client google-auth-oauthlib
Node.js
Google istemci kitaplıklarını ve diğer gerekli bağımlılıkları Node.js projesi için: projenizin dizinine geçiş yapın ve aşağıdaki komutu çalıştırın komutunu çalıştırın:
npm install "@googleapis/chat" open server-destroy
Apps Komut Dosyası
Bu örnekte kullanılan Gelişmiş Chat hizmeti Google Chat API'yi çağırın. Cihazınızda hizmeti etkinleştirmek için Apps Komut Dosyası projesi:
- Sol kısımdan Düzenleyici'yi tıklayın.
- Solda, Hizmetler'in yanındaki Hizmet ekle'yi tıklayın. .
- Google Chat API'yi seçin.
- Sürüm bölümünde v1'i seçin.
- Ekle'yi tıklayın.
Şu belgenin desteklediği herhangi bir dili kullanabilirsiniz: istemci kitaplıkları.
4. Adım: Chat API'yi çağıran bir komut dosyası yazın
OAuth yetkilendirmesi ile API çağırmak çok adımlı bir işlemdir. Web'de veya için bu işlem genellikle şu şekildedir:
- Uygulama, kullanıcıyı, kullanıcıya erişim isteyen bir yetkilendirme sayfasına yönlendiriyor. tarafından belirtilen veriler için geçerlidir. Uygulama kendini istemciyle tanıtıyor Kimlik bilgileri.
- Kullanıcı, uygulama tarafından istenen izinleri inceler ve isteği gönderin.
- Google'ın kimlik doğrulama sunucusu, tarayıcıyı uygulamanın HTTP'sine yönlendirir uç noktası gösterilir.
- Uygulama, aşağıdaki verileri almak için Google'ın yetkilendirme sunucusuna başka bir istek gönderir: yetkilendirme kodunu erişim jetonuyla değiştirin.
- Uygulama, kullanıcı adına API'yi çağırmak için erişim jetonunu kullanır.
OAuth yetkilendirme işlemi hakkında daha fazla bilgi edinmek için şu sayfaya göz atın: Google API'lerine Erişmek için OAuth 2.0 Kullanma Kılavuzu.
Java, Python ve Node.js'deki aşağıdaki kod örneklerinde, istemci kitaplığı OAuth yetkilendirme akışını yürütün. Aşağıdaki işlemleri gerçekleştirmek için bir yerel HTTP sunucusu açar kodu yetkilendirme sunucusundan geri alır ve daha sonra bu kod, bir erişim jetonu alabilirsiniz. Apps Komut Dosyası kod örneğinde bu yetkilendirme akışı Apps Komut Dosyası tarafından işlenir.
Kimlik doğrulama akışı tamamlandıktan sonra komut dosyası, Kullanıcının erişim jetonunu kullanan Chat API ve ardından bir alan oluşturuyor.
Java
- Projenizin dizininde dosyayı açın
src/main/java/com/google/chat/app/authsample/App.java
App.java
içindeki içeriği aşağıdaki kodla değiştirin: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(); } }
Projenizin dizininde
resources
adlı yeni bir alt dizin oluşturun.client_secrets.json
dosyasınıresources
alt dizinine kopyalayın.Maven'i istemci gizli anahtarı dosyasını proje paketine ekleyecek şekilde yapılandırmak için projenizin dizininde
pom.xml
dosyasını düzenleyin ve şunu ekleyin: yapılandırma işlemini<build>
bölümüne ekleyin:<build> <!-- ... existing configurations ... --> <resources> <resource> <directory>resources</directory> </resource> </resources> </build>
Maven'i bağımlılıkları proje paketine ekleyecek şekilde yapılandırmak ve uygulamanızın ana sınıfını yürütmek için
pom.xml
dosyasını aşağıdaki yapılandırmayı ekleyin ve<plugins>
bölümü:<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
Aşağıdaki kodu
chat_space_create_named.py
adlı dosyadakiclient_secrets.json
içeren dizinle aynı: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
Aşağıdaki kodu
chat_space_create_named.js
adlı dosyadaki Node.js projesini veclient_secrets.json
projesini barındıran dizin: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 Komut Dosyası
Apps Komut Dosyası düzenleyicisinde
appsscript.json
dosyasını düzenleyin. ve API'yi çağırmak için gereken OAuth kapsamını ekleyin:"oauthScopes": [ "https://www.googleapis.com/auth/chat.spaces.create" ]
Aşağıdaki kodu
ChatSpaceCreateNamed.gs
adlı dosyadaki Apps Komut Dosyası projesi:/** * 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); } }
5. Adım: Örnek komut dosyasını çalıştırın
Örneği çalıştırmak için komut satırından, ve ardından aşağıdaki komutu yürütün:
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 Komut Dosyası
Apps Komut Dosyası'nda ChatSpaceCreateNamed.gs
dosyasını açın
Düzenleyici'yi seçin ve Çalıştır'ı tıklayın.
Bir tarayıcı açılır ve Google Hesabınızda oturum açmanızı ister:
Oturum açtıktan sonra OAuth izin ekranı açılır ve sizden onay isteyen izin verilmelidir.
İzin vermenizin ardından komut dosyası
Chat API
API-made
görünen Chat alanı. Konsolda
ayrıntılarını inceleyelim. Alanı bulmak için Alanlar paneline gidin:
Google Chat
Örnekteki sorunları giderin
chat_space_create_named.py
çalıştırırken şu hata mesajını alabilirsiniz:
Expected a JSON object with a single property for a "web" or "installed" application
Bu hata mesajı, indirdiğiniz client_secrets.json
dosyasının
"web"
veya "installed"
ile başlamadığından
İndirilen dosyayla kimlik doğrulaması yaptıktan sonra kodunuz doğrulanmazsa
erişim jetonunu token.json
gibi yeni bir dosyaya kaydederseniz erişim jetonu
client_secrets.json
adresine yazılır, bu da sonraki
izin verebilirsiniz.
Hatayı çözmek için Google Cloud konsolundan istemci gizli anahtarı dosyasını indirin tekrar tıklayın ve yeni dosyayı geçerli dosyanın yerine kaydedin.
İlgili konular
Uygulamanızın, kapsam dışında kullanıcı jetonlarını kullanmaya devam etmesi gerekiyorsa jetonlar daha sonra yeniden kullanılmak üzere depolanabilir. Böyle durumlarda Uygulamanızın, kullanıcı jetonlarını güvenli bir şekilde işlemesi ve yenilemeyi işlemesi gerekir. jeton iptali ve geçerlilik süresi. Daha fazla bilgi için bkz. OAuth 2.0 En İyi Uygulamalar Kılavuzu.
Chat API'nin başka neler yapabileceğini öğrenmek için Chat API referans dokümanları.