Bu kılavuzda, Chat API'ye erişmek için kullanıcıların Google kimlik bilgileriyle OAuth 2.0'ın nasıl kullanılacağı açıklanmaktadır. Kullanıcı kimlik bilgileriyle kimlik doğrulama ve yetkilendirme, Chat uygulamalarının kullanıcı verilerine erişmesine ve kimliği doğrulanmış kullanıcı adına işlemler gerçekleştirmesine olanak tanır. Uygulama, bir kullanıcının adına kimlik doğrulayarak o kullanıcıyla aynı izinlere sahip olur ve kullanıcının gerçekleştirdiği işlemler gibi işlemler yapabilir.
Chat uygulamaları, kullanıcı kimlik bilgileriyle bir API çağrısının kimliğini doğrulayıp yetkilendirdikten sonra şunları yapabilir:
- Chat alanları oluşturun.
- Chat alanlarına ve grup görüşmelerine kullanıcı ekleme
- Aşağıdakiler gibi diğer Workspace API'lerindeki kullanıcı verileriyle çalışma:
- Google Takvim'de etkinlik oluşturabilirsiniz.
- Google E-Tablolar'da günlük öğeleri.
- Gmail ile e-posta gönderme
Bir uygulama, kullanıcı kimlik doğrulamasıyla işlem yaptığında (ör. alan oluşturma) Google Chat, kullanıcıya yetki veren kullanıcı adına işlemi gerçekleştiren uygulamanın adını bildiren bir ilişkilendirme mesajı gösterir.

Chat uygulamalarının ne zaman kimlik doğrulama gerektirdiği ve hangi tür kimlik doğrulamanın kullanılacağı hakkında daha fazla bilgi edinmek için Chat API kimlik doğrulama ve yetkilendirme genel bakışında Gerekli kimlik doğrulama türleri başlıklı makaleyi inceleyin.
Google Workspace yöneticisi olarak kimlik doğrulaması yapma ve yetkilendirme
Bu bölümde, Google Workspace çalışma alanı yöneticilerinin kullanıcı kimlik doğrulamasıyla kuruluşlarındaki Google Chat uygulamalarını ve alanlarını nasıl yönetebileceği açıklanmaktadır.
Alan genelinde yetki kullanarak kimlik doğrulaması yapma ve yetkilendirme
Alan yöneticisiyseniz bir uygulamanın hizmet hesabının, kullanıcılarınızın verilerine erişebilmesi için alan genelinde yetki verme izni verebilirsiniz. Bu durumda, her kullanıcının tek tek izin vermesi gerekmez. Alan genelinde yetki özelliğini yapılandırdıktan sonra hizmet hesabı, kullanıcı hesabının kimliğine bürünebilir. Kimlik doğrulama için hizmet hesabı kullanılsa da alan genelinde yetkilendirme, kullanıcının kimliğine bürünür ve bu nedenle kullanıcı kimlik doğrulaması olarak kabul edilir. Kullanıcı kimlik doğrulaması gerektiren tüm işlevler için alan genelinde yetkiyi kullanabilirsiniz.
Yönetici ayrıcalıklarını kullanarak kimlik doğrulaması yapma ve yetkilendirme
Bir alan yöneticisiyseniz veya yönetici ayrıcalıklarına sahip bir yetkilendirilmiş yöneticiyseniz, geçerli yöntemlerin isteklerinde useAdminAccess
alanını ayarlayarak Google Chat API'ye yaptığınız çağrıları yönetici ayrıcalıklarıyla kimlik doğrulayabilir ve yetkilendirebilirsiniz. Daha fazla bilgi için API referans belgelerine bakın.
Google Chat uygulamaları, yönetici ayrıcalıklarıyla işlem gerçekleştirdiğinde Chat, kullanıcılara işlemi gerçekleştiren Chat uygulamasının veya işlemi yetkilendiren yöneticinin adını söylemez. Kullanıcılara yalnızca işlemin kuruluşlarının yöneticisi tarafından gerçekleştirildiği bildirilir.
Ön koşullar
Java
- Google Chat'e erişimi olan bir Business veya Enterprise Google Workspace hesabı.
- Google Cloud projesi oluşturun.
- Google Chat API'yi etkinleştirin ve yapılandırın. Chat uygulamanız için ad, simge ve açıklama ekleyin.
- JDK 1.7 veya üstü
- Maven paket yönetimi aracı
-
Başlatılmış bir Maven projesi. Yeni bir projeyi başlatmak için komut satırı arayüzünüzde aşağıdaki komutu çalıştırın:
mvn archetype:generate -DgroupId=com.google.chat.app.authsample -DartifactId=auth-sample-app -DarchetypeArtifactId=maven-archetype-quickstart -DarchetypeVersion=1.4 -DinteractiveMode=false
Python
- Google Chat'e erişimi olan bir Business veya Enterprise Google Workspace hesabı.
- Google Cloud projesi oluşturun.
- Google Chat API'yi etkinleştirin ve yapılandırın. Chat uygulamanız için ad, simge ve açıklama ekleyin.
- Python 3.6 veya sonraki sürümler
- pip paket yönetim aracı
Node.js
- Google Chat'e erişimi olan bir Business veya Enterprise Google Workspace hesabı.
- Google Cloud projesi oluşturun.
- Google Chat API'yi etkinleştirin ve yapılandırın. Chat uygulamanız için ad, simge ve açıklama ekleyin.
- Node.js 14 veya daha yeni bir sürüm
- npm paket yönetim aracı
-
Başlatılmış bir Node.js projesi. Yeni bir projeyi başlatmak için yeni bir klasör oluşturup bu 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ı
- Google Chat'e erişimi olan bir Business veya Enterprise Google Workspace hesabı.
- Google Cloud projesi oluşturun.
- Google Chat API'yi etkinleştirin ve yapılandırın. Chat uygulamanız için ad, simge ve açıklama ekleyin.
- Bağımsız bir Apps Komut Dosyası projesi oluşturun ve Gelişmiş Chat Hizmeti'ni etkinleştirin.
1. adım: OAuth kullanıcı rızası ekranını yapılandırın, kapsamları belirtin ve uygulamanızı kaydedin
Yetkilendirme için OAuth 2.0 kullandığınızda Google, kullanıcıya projenizin, politikalarının ve istenen yetkilendirme kapsamlarının özetini içeren bir izin ekranı gösterir. Uygulamanızın OAuth kullanıcı rızası ekranını yapılandırmak, Google'ın kullanıcılara ve uygulama inceleyicilerine ne göstereceğini tanımlar ve uygulamanızı kaydeder. Böylece uygulamanızı daha sonra yayınlayabilirsiniz.
OAuth 2.0 kullanan tüm uygulamalar için izin ekranı yapılandırması gerekir. Ancak yalnızca Google Workspace kuruluşunuzun dışındaki kullanıcılar tarafından kullanılan uygulamaların kapsamlarını listelemeniz gerekir.
Google Cloud Console'da Menü > > Markalama'ya gidin.
yapılandırmasını daha önce yaptıysanız Markalama, Kitle ve Veri Erişimi'nde aşağıdaki OAuth izin ekranı ayarlarını yapılandırabilirsiniz. henüz yapılandırılmadı mesajını görürseniz Başlayın'ı tıklayın:
- Uygulama Bilgileri bölümündeki Uygulama adı alanına bir Uygulama adı girin.
- Kullanıcı destek e-postası bölümünde, kullanıcıların rızalarıyla ilgili soruları olduğunda sizinle iletişime geçebileceği bir destek e-posta adresi seçin.
- İleri'yi tıklayın.
- Kitle bölümünde Dahili'yi seçin. Dahili'yi seçemiyorsanız Harici'yi seçin.
- İleri'yi tıklayın.
- İletişim bilgileri bölümünde, projenizde yapılan değişikliklerle ilgili bildirim alabileceğiniz bir e-posta adresi girin.
- İleri'yi tıklayın.
- Bitir bölümünde Google API Hizmetleri Kullanıcı Verileri Politikası'nı inceleyin ve kabul ediyorsanız Google API Hizmetleri: Kullanıcı Verileri Politikası'nı kabul ediyorum'u seçin.
- Devam'ı tıklayın.
- Oluştur'u tıklayın.
- Kullanıcı türü için Harici'yi seçtiyseniz test kullanıcıları ekleyin:
- Kitle'yi tıklayın.
- Test kullanıcıları bölümünde Kullanıcı ekle'yi tıklayın.
- E-posta adresinizi ve yetkili diğer test kullanıcılarını girip Kaydet'i tıklayın.
Veri Erişimi > Kapsam Ekleme veya Kaldırma'yı tıklayın. Google Cloud projenizde etkinleştirdiğiniz her API'nin kapsamlarının listesini içeren bir panel gösterilir.
- Kapsamları manuel olarak ekle bölümünde, bu kılavuzdaki kimlik doğrulama örneğini çalıştırmak için gereken
https://www.googleapis.com/auth/chat.spaces.create
değerini yapıştırın. Chat API için kullanılabilen kapsamları incelemek üzere kimlik doğrulama genel bakışındaki Chat API Kapsamları bölümüne bakın. - Tabloya ekle'yi tıklayın.
- Güncelle'yi tıklayın.
- Uygulamanızın gerektirdiği kapsamları seçtikten sonra Veri Erişimi sayfasında Kaydet'i tıklayın.
- Kapsamları manuel olarak ekle bölümünde, bu kılavuzdaki kimlik doğrulama örneğini çalıştırmak için gereken
2. adım: Google Cloud Console'da OAuth istemci kimliği kimlik bilgileri oluşturun
Son kullanıcı olarak kimlik doğrulamak ve uygulamanızdaki kullanıcı verilerine erişmek için bir veya daha fazla OAuth 2.0 istemci kimliği oluşturmanız gerekir. İstemci kimliği, tek bir uygulamanın Google OAuth sunucularına tanıtılması için kullanılır. Uygulamanız Android, iOS ve web gibi birden fazla platformda çalışıyorsa her platform için ayrı bir istemci kimliği oluşturmanız gerekir.
OAuth istemci kimliği kimlik bilgileri oluşturma
OAuth istemci kimliği oluşturma hakkında ayrıntılı talimatlar için uygulama türünüzü seçin:
Web uygulaması
- Google Cloud Console'da Menü > > İstemciler'e gidin.
- Create Client'ı (İstemci Oluştur) tıklayın.
- Uygulama türü > Web uygulaması'nı tıklayın.
- Ad alanına, kimliğin adını yazın. Bu ad yalnızca Google Cloud Console'da gösterilir.
- Uygulamanızla ilgili yetkilendirilmiş URI'leri ekleyin:
- İstemci tarafı uygulamaları (JavaScript): Yetkilendirilmiş JavaScript kaynakları bölümünde URI ekle'yi tıklayın. Ardından, tarayıcı isteklerinde kullanılacak bir URI girin. Bu, uygulamanızın OAuth 2.0 sunucusuna API istekleri gönderebileceği alanları tanımlar.
- Sunucu tarafı uygulamaları (Java, Python vb.): Yetkilendirilmiş 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 oluşturulan kimlik bilgisi OAuth 2.0 istemci kimlikleri altında görünür.
İstemci kimliğini not edin. İstemci gizli anahtarları web uygulamaları için kullanılmaz.
Android
- Google Cloud Console'da Menü > > İstemciler'e gidin.
- Create Client'ı (İstemci Oluştur) tıklayın.
- Uygulama türü > Android'i tıklayın.
- "Ad" alanına kimliğin adını yazın. Bu ad yalnızca Google Cloud Console'da gösterilir.
- "Paket adı" alanına
AndroidManifest.xml
dosyanızdaki paket adını girin. - "SHA-1 sertifika parmak izi" alanına oluşturulan SHA-1 sertifika parmak izinizi girin.
- Oluştur'u tıklayın.
Yeni oluşturulan kimlik bilgisi, "OAuth 2.0 İstemci Kimlikleri" bölümünde görünür.
iOS
- Google Cloud Console'da Menü > > İstemciler'e gidin.
- Create Client'ı (İstemci Oluştur) tıklayın.
- Uygulama türü > iOS'i tıklayın.
- "Ad" alanına kimliğin adını yazın. Bu ad yalnızca Google Cloud Console'da gösterilir.
- "Paket Kimliği" alanına, uygulamanın
Info.plist
dosyasında listelenen paket tanımlayıcıyı 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" alanına, Apple tarafından oluşturulan ve ekibinize atanan 10 karakterlik benzersiz dizeyi girin.
- Oluştur'u tıklayın.
Yeni oluşturulan kimlik bilgisi, "OAuth 2.0 İstemci Kimlikleri" bölümünde görünür.
Chrome uygulaması
- Google Cloud Console'da Menü > > İstemciler'e gidin.
- Create Client'ı (İstemci Oluştur) tıklayın.
- Uygulama türü > Chrome Uzantısı'nı tıklayın.
- "Ad" alanına kimliğin adını yazın. Bu ad yalnızca Google Cloud Console'da gösterilir.
- "Öğe kimliği" 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 oluşturulan kimlik bilgisi, "OAuth 2.0 İstemci Kimlikleri" bölümünde görünür.
Masaüstü uygulaması
- Google Cloud Console'da Menü > > İstemciler'e gidin.
- Create Client'ı (İstemci Oluştur) tıklayın.
- Uygulama türü > Masaüstü uygulaması'nı tıklayın.
- Ad alanına, kimliğin adını yazın. Bu ad yalnızca Google Cloud Console'da gösterilir.
- Oluştur'u tıklayın.
Yeni oluşturulan kimlik bilgisi, "OAuth 2.0 İstemci Kimlikleri" bölümünde görünür.
TV'ler ve sınırlı giriş cihazları
- Google Cloud Console'da Menü > > İstemciler'e gidin.
- Create Client'ı (İstemci Oluştur) tıklayın.
- Uygulama türü > TV'ler ve sınırlı giriş cihazları'nı tıklayın.
- "Ad" alanına kimliğin adını yazın. Bu ad yalnızca Google Cloud Console'da gösterilir.
- Oluştur'u tıklayın.
Yeni oluşturulan kimlik bilgisi, "OAuth 2.0 İstemci Kimlikleri" bölümünde görünür.
Evrensel Windows Platformu (UWP)
- Google Cloud Console'da Menü > > İstemciler'e gidin.
- Create Client'ı (İstemci Oluştur) tıklayın.
- Uygulama türü > Evrensel Windows Platformu (UWP)'nu tıklayın.
- "Ad" alanına kimliğin adını yazın. Bu ad yalnızca Google Cloud Console'da gösterilir.
- "Mağaza Kimliği" alanına uygulamanızın benzersiz, 12 karakterlik 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 oluşturulan kimlik bilgisi, "OAuth 2.0 İstemci Kimlikleri" bölümünde görünür.
İstemci gizli anahtarı JSON dosyasını indirme
İstemci gizli anahtarı dosyası, Chat uygulamanızın kimlik bilgileri sağlarken referans verebileceği OAuth istemci kimliği kimlik bilgilerinin JSON gösterimidir.
Google Cloud Console'da Menü > API'ler ve Hizmetler > Kimlik Bilgileri'ne gidin.
OAuth 2.0 istemci kimlikleri bölümünde, oluşturduğunuz istemci kimliğini tıklayın.
JSON'ı indir'i tıklayın.
Dosyayı
credentials.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 projenize eklemek için projenizin dizinindeki pom.xml
dosyasını düzenleyin ve aşağıdaki bağımlılıkları ekleyin:
<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 aşağıdaki komutu çalıştırı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 projenize eklemek için projenizin dizinine geçin ve komut satırı arayüzünüzde aşağıdaki komutu çalıştırın:
npm install "@googleapis/chat" open server-destroy
Apps Komut Dosyası
Bu örnek, Google Chat API'yi çağırmak için Advanced Chat hizmetini kullanır. Apps Komut Dosyası projenizde hizmeti etkinleştirmek için:
- Sol tarafta Düzenleyici'yi tıklayın.
- Sol tarafta, Hizmetler'in yanındaki Hizmet ekle'yi tıklayın.
- Google Chat API'yi seçin.
- Version (Sürüm) bölümünde v1'i seçin.
- Ekle'yi tıklayın.
İstemci kitaplıklarımız tarafından desteklenen herhangi bir dili kullanabilirsiniz.
4. adım: Chat API'yi çağıran bir komut dosyası yazın
OAuth yetkilendirmesiyle API çağırma işlemi çok adımlı bir süreçtir. Web veya masaüstü uygulamalarında süreç genellikle şu şekildedir:
- Uygulama, kullanıcıyı yetkilendirme kapsamları tarafından belirtilen kullanıcı verilerine erişim isteyen bir yetkilendirme sayfasına yönlendirir. Uygulama, istemci kimliği kimlik bilgileriyle kendini tanımlar.
- Kullanıcı, uygulama tarafından istenen izinleri inceler ve isteği onaylar.
- Google'ın kimlik doğrulama sunucusu, tarayıcıyı yetkilendirme koduyla birlikte uygulamanın HTTP uç noktasına yönlendirir.
- Uygulama, yetkilendirme kodunu erişim jetonuyla değiştirmek için Google'ın yetkilendirme sunucusuna başka bir istek gönderir.
- Uygulama, kullanıcı adına API'yi çağırmak için erişim jetonunu kullanır.
OAuth yetkilendirme süreci hakkında daha fazla bilgi edinmek için Google API'lerine Erişmek İçin OAuth 2.0'ı Kullanma Kılavuzu'na bakın.
Java, Python ve Node.js'deki aşağıdaki kod örneklerinde, OAuth yetkilendirme akışını yürütmek için istemci kitaplığı kullanılır. Yetkilendirme sunucusundan yetkilendirme kodunu geri almak için yerel bir HTTP sunucusu açar. Ardından, bu kodu erişim jetonuyla değiştirir. 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 kullanarak Chat API ile kimliğini doğrular ve ardından bir alan oluşturur.
Java
- Projenizin dizininde
src/main/java/com/google/chat/app/authsample/App.java
dosyasını açın. 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 = "/credentials.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("/credentials.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.credentials.json
dosyasınıresources
alt dizinine kopyalayın.Maven'i, istemci sırları dosyasını proje paketine dahil edecek şekilde yapılandırmak için projenizin dizinindeki
pom.xml
dosyasını düzenleyin ve<build>
bölümüne aşağıdaki yapılandırmayı ekleyin:<build> <!-- ... existing configurations ... --> <resources> <resource> <directory>resources</directory> </resource> </resources> </build>
Maven'i, bağımlılıkları proje paketine dahil edecek ve uygulamanızın ana sınıfını yürütecek şekilde yapılandırmak için projenizin dizinindeki
pom.xml
dosyasını düzenleyin ve<plugins>
bölümüne aşağıdaki yapılandırmayı ekleyin:<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ı bir dosyaya kaydedin. Bu dosya,credentials.json
dosyasının bulunduğu dizinde olmalıdır: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( 'credentials.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, Node.js projesini ve
credentials.json
öğesini içeren dizindechat_space_create_named.js
adlı bir dosyaya kaydedin: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('./credentials.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 gerekli OAuth kapsamını ekleyin:"oauthScopes": [ "https://www.googleapis.com/auth/chat.spaces.create" ]
Aşağıdaki kodu, Apps Komut Dosyası projenizde
ChatSpaceCreateNamed.gs
adlı bir dosyaya kaydedin:/** * 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 proje dosyalarınızın bulunduğu dizine gidin ve 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 Script Düzenleyici'de dosyayı ChatSpaceCreateNamed.gs
açın ve Çalıştır'ı tıklayın.
Bir tarayıcı açılır ve Google Hesabınızda oturum açmanız istenir:
Oturum açtıktan sonra OAuth izin ekranı gösterilir ve uygulamaya izin vermeniz istenir.
İzin verdikten sonra komut dosyası, Chat API'yi çağırır. Bu API, API-made
görünen adıyla Chat alanı oluşturarak yanıt verir. Konsolda API çağrısının ayrıntıları yazdırılır. Alanı bulmak için Google Chat'teki Alanlar paneline gidin.
Örnekle ilgili sorunları giderme
chat_space_create_named.py
çalıştırılırken şu hata mesajını alabilirsiniz:
Expected a JSON object with a single property for a "web" or "installed" application
Bu hata mesajı, Google Cloud Console'dan indirdiğiniz credentials.json
dosyasının "web"
veya "installed"
özelliğiyle başlamadığı anlamına gelir. İndirilen dosyayla kimlik doğrulama işleminden sonra kodunuz erişim jetonunu token.json
gibi yeni bir dosyaya kaydetmiyorsa erişim jetonu credentials.json
dosyasına yazılır. Bu durum, sonraki yetkilendirme denemelerinde bu hataya neden olabilir.
Hatayı düzeltmek için istemci gizli anahtar dosyasını Google Cloud Console'dan tekrar indirin ve yeni dosyayı mevcut dosyanın yerine kaydedin.
İlgili konular
Uygulamanızın, kullanıcı jetonlarını tek bir akışın kapsamı dışında kullanmaya devam etmesi gerekiyorsa jetonları daha sonra yeniden kullanmak üzere saklayabilir. Bu durumda uygulamanızın kullanıcı jetonlarını güvenli bir şekilde işlemesi, yenileme jetonunun iptalini ve süresinin dolmasını yönetmesi gerekir. Daha fazla bilgi için OAuth 2.0 En İyi Uygulamalar Kılavuzu ve Kullanıcı Yetkilendirme uygulaması örneğine bakın:
- Java kullanıcı yetkilendirme uygulaması örneği
- Python kullanıcı yetkilendirme uygulaması örneği
- Node.js kullanıcı yetkilendirme uygulaması örneği
- Apps Komut Dosyası'nın Google Chat ile entegrasyonu, kullanıcı jetonlarını otomatik olarak işler. Daha fazla bilgi için Gelişmiş Chat hizmeti başlıklı makaleyi inceleyin.
Etkileşimli bir Chat uygulaması için
appsscript.json
dosyasına gerekli OAuth kapsamlarını eklerseniz Apps Komut Dosyası entegrasyonu, kullanıcı jetonlarını otomatik olarak güvenli ve şeffaf bir şekilde saklar ve komut dosyası aynı kullanıcı için Chat API'yi bir sonraki sefer çağırdığında bu jetonları yeniden kullanır.
Chat API'nin başka neler yapabileceğini öğrenmek için Chat API referans belgelerini inceleyin.