Bu rehberde, Google Chat uygulamalarının mesaj gönderebileceği farklı yöntemler açıklanmaktadır:
- Bir kullanıcı etkileşimine yanıt vererek kısa mesaj ve kart mesajlarını gerçek zamanlı olarak gönderin.
Message
kaynağındacreate
yöntemini çağırarak kısa mesajları ve kart mesajlarını eşzamansız olarak gönderin.- Bir mesaj dizisi başlatın veya bir mesaj dizisini yanıtlayın.
- Mesaj gönderme ve adlandırma.
Message
kaynağı, Google Chat'teki bir metin veya kart mesajı temsil eder. İlgili yöntemleri çağırarak Google Chat API'de bir mesaja create
, get
, update
veya delete
gönderebilirsiniz. Kısa mesajlar ve kart mesajlar hakkında daha fazla bilgi edinmek için Google Chat mesajlarına genel bakış başlıklı makaleyi inceleyin.
Google Chat uygulamaları, kısa mesajları veya kart mesajlarını eşzamansız olarak göndermek için Google Chat API'nin Message
kaynağında create
yöntemini çağırmak yerine, kullanıcı etkileşimlerine gerçek zamanlı yanıt vermek için mesajlar da oluşturabilir. Kullanıcı etkileşimlerine verilen yanıtlar kimlik doğrulama gerektirmez ve etkileşimli iletişim kutuları ve bağlantı önizlemeleri gibi diğer mesaj türlerini destekler. Ayrıntılı bilgi için Google Chat uygulamanızla etkileşimleri alma ve yanıtlama başlıklı makaleyi inceleyin.
Ön koşullar
Node.js
- Google Chat'e erişimi olan bir Google Workspace hesabı.
- Yayınlanmış bir Chat uygulamasıdır. Chat uygulaması oluşturmak için bu quickstart takip edin.
- Chat uygulamasının eşzamansız mesajlar göndermesi için yapılandırılmış yetkilendirme. İletileri gerçek zamanlı olarak göndermek için yetkilendirme yapılandırması gerekmez.
- Kısa mesaj göndermek aşağıdaki yetkilendirme yöntemlerinin ikisini de destekler:
chat.messages.create
veyachat.messages
yetkilendirme kapsamıyla kullanıcı kimlik doğrulaması.chat.bot
yetkilendirme kapsamıyla uygulama kimlik doğrulaması.
- Kart mesajı göndermek için
chat.bot
yetkilendirme kapsamına sahip uygulama kimlik doğrulaması gerekir.
- Kısa mesaj göndermek aşağıdaki yetkilendirme yöntemlerinin ikisini de destekler:
Python
- Python 3.6 veya sonraki sürümler
- pip paket yönetimi aracı
Python için en yeni Google istemci kitaplıkları. Bunları yüklemek veya güncellemek için komut satırı arayüzünüzde aşağıdaki komutu çalıştırın:
pip3 install --upgrade google-api-python-client google-auth-httplib2 google-auth-oauthlib oauth2client
Yayınlanmış bir Chat uygulaması. Chat uygulaması oluşturup yayınlamak için Google Chat uygulaması oluşturma başlıklı makaleyi inceleyin.
Chat uygulamasının eşzamansız mesajlar göndermesi için yapılandırılmış yetkilendirme. İletileri gerçek zamanlı olarak göndermek için yetkilendirme yapılandırması gerekmez.
- Kısa mesaj göndermek aşağıdaki yetkilendirme yöntemlerinin ikisini de destekler:
chat.messages.create
veyachat.messages
yetkilendirme kapsamıyla kullanıcı kimlik doğrulaması.chat.bot
yetkilendirme kapsamıyla uygulama kimlik doğrulaması.
- Kart mesajı göndermek için
chat.bot
yetkilendirme kapsamına sahip uygulama kimlik doğrulaması gerekir.
- Kısa mesaj göndermek aşağıdaki yetkilendirme yöntemlerinin ikisini de destekler:
Apps Komut Dosyası
- Google Chat'e erişimi olan bir Google Workspace hesabı.
- Yayınlanmış bir Chat uygulamasıdır. Chat uygulaması oluşturmak için bu quickstart takip edin.
Kısa mesaj gönderme
Bu bölümde, aşağıdaki iki yolla kısa mesaj gönderme hakkında bilgi verilmektedir:
- Kullanıcı etkileşimine yanıt vererek gerçek zamanlı olarak kısa mesaj gönderin.
- Google Chat API'yi eşzamansız olarak çağırarak kısa mesaj gönderin.
Gerçek zamanlı olarak kısa mesaj gönderin
Bu örnekte Chat uygulamanız bir alana her eklendiğinde kısa mesaj oluşturup gönderir. Kullanıcıların ilk katılım sürecini başlatmayla ilgili en iyi uygulamalar hakkında bilgi edinmek için Kullanıcıların ve alanların faydalı ilk katılımıyla kullanmaya başlamasını sağlama başlıklı makaleyi inceleyin.
Kullanıcı Chat uygulamanızı bir alana eklediğinde kısa mesaj göndermek için Chat uygulamanız bir ADDED_TO_SPACE
etkileşim etkinliğine yanıt verir. ADDED_TO_SPACE
etkileşim etkinliklerine kısa mesajla yanıt vermek için aşağıdaki kodu kullanın:
Node.js
/**
* Sends an onboarding message when the Chat app is added to a space.
*
* @param {Object} event The event object from Chat API.
* @return {Object} Response from the Chat app. An onboarding message that
* introduces the app and helps people get started with it.
*/
exports.onMessage = function onMessage(req, res) {
if (req.method === 'GET' || !req.body.message) {
res.send(
'Hello! This function is meant to be used in a Google Chat space.');
}
// Send an onboarding message when added to a Chat space
if(req.body.type === 'ADDED_TO_SPACE') {
res.json({
'text': 'Hi, Cymbal at your service. I help you manage your calendar
from Google Chat. Take a look at your schedule today by typing
`/checkCalendar`, or schedule a meeting with `/scheduleMeeting`. To
learn what else I can do, type `/help`.'
});
}
};
Apps Komut Dosyası
/**
* Sends an onboarding message when the Chat app is added to a space.
*
* @param {Object} event The event object from Chat API.
* @return {Object} Response from the Chat app. An onboarding message that
* introduces the app and helps people get started with it.
*/
function onAddToSpace(event) {
return {
'text': 'Hi, Cymbal at your service. I help you manage your calendar
from Google Chat. Take a look at your schedule today by typing
`/checkCalendar`, or schedule a meeting with `/scheduleMeeting`. To learn
what else I can do, type `/help`.'
}
}
Kod örneği aşağıdaki kısa mesajı döndürür:
Kısa mesajı eşzamansız olarak gönderme
Aşağıdaki bölümde, uygulama kimlik doğrulaması ve kullanıcı kimlik doğrulamasıyla eşzamansız olarak kısa mesajın nasıl gönderileceği açıklanmaktadır.
Kısa mesaj göndermek için isteğinizde aşağıdakileri iletin:
- Uygulama kimlik doğrulamasıyla
chat.bot
yetkilendirme kapsamını belirtin. Kullanıcı kimlik doğrulamasıylachat.messages.create
yetkilendirme kapsamını belirtin. Message
kaynağındacreate
yöntemini çağırın.
Uygulama kimlik doğrulamasıyla kısa mesaj gönder
Uygulama kimlik doğrulaması ile bir kısa mesajı şu şekilde gönderebilirsiniz:
Python
- Çalışma dizininizde
chat_create_text_message_app.py
adında bir dosya oluşturun. chat_create_text_message_app.py
içine şu kodu ekleyin:from httplib2 import Http from oauth2client.service_account import ServiceAccountCredentials from apiclient.discovery import build # Specify required scopes. SCOPES = ['https://www.googleapis.com/auth/chat.bot'] # Specify service account details. CREDENTIALS = ServiceAccountCredentials.from_json_keyfile_name( 'credentials.json', SCOPES) # Build the URI and authenticate with the service account. chat = build('chat', 'v1', http=CREDENTIALS.authorize(Http())) # Create a Chat message. result = chat.spaces().messages().create( # The space to create the message in. # # Replace SPACE with a space name. # Obtain the space name from the spaces resource of Chat API, # or from a space's URL. parent='spaces/SPACE', # The message to create. body={'text': 'Hello, world!'} ).execute() print(result)
Koddaki
SPACE
yerine, Chat API'dekispaces.list()
yönteminden veya alanın URL'sinden alabileceğiniz bir alan adı girin.Çalışma dizininizde örneği derleyin ve çalıştırın:
python3 chat_create_text_message_app.py
Chat API, gönderilen mesajı ayrıntılı olarak gösteren bir Message
örneği döndürür.
Kullanıcı kimlik doğrulaması içeren bir kısa mesaj gönder
Kullanıcı kimlik doğrulaması ile kısa mesaj göndermek için yapmanız gerekenler aşağıda açıklanmıştır:
Python
- Çalışma dizininizde
chat_create_text_message_user.py
adında bir dosya oluşturun. chat_create_text_message_user.py
içine şu kodu ekleyin:import os.path from google.auth.transport.requests import Request from google.oauth2.credentials import Credentials from google_auth_oauthlib.flow import InstalledAppFlow from googleapiclient.discovery import build from googleapiclient.errors import HttpError # 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.messages.create"] def main(): ''' Authenticates with Chat API via user credentials, then creates a text message in a Chat space. ''' # Start with no credentials. creds = None # Authenticate with Google Workspace # and get user authorization. flow = InstalledAppFlow.from_client_secrets_file( 'client_secrets.json', SCOPES) creds = flow.run_local_server() # Build a service endpoint for Chat API. chat = build('chat', 'v1', credentials=creds) # Use the service endpoint to call Chat API. result = chat.spaces().messages().create( # The space to create the message in. # # Replace SPACE with a space name. # Obtain the space name from the spaces resource of Chat API, # or from a space's URL. parent='spaces/SPACE', # The message to create. body={'text': 'Hello, world!'} ).execute() # Prints details about the created membership. print(result) if __name__ == '__main__': main()
Koddaki
SPACE
değerini, Chat API'dekispaces.list()
yönteminden veya alanın URL'sinden alabileceğiniz bir alan adıyla değiştirin.Çalışma dizininizde örneği derleyin ve çalıştırın:
python3 chat_create_text_message_user.py
Chat API, gönderilen mesajı ayrıntılı olarak gösteren bir Message
örneği döndürür.
Kart mesajları gönderme
Bu bölümde, kart mesajlarının aşağıdaki iki yöntemle nasıl gönderileceği açıklanmaktadır:
- Kullanıcı etkileşimine yanıt vererek gerçek zamanlı olarak bir kart mesajı gönderin.
- Google Chat API'yi eşzamansız olarak çağırarak kart mesajı gönderin.
Gerçek zamanlı olarak kart mesajı gönderin
Chat uygulamaları, kullanıcının Chat uygulamasına mesaj göndermesi veya Chat uygulamasını bir alana eklemesi gibi kullanıcı etkileşimlerine yanıt vermek için kart mesajları oluşturabilir. Kullanıcı etkileşimlerine yanıt verme hakkında daha fazla bilgi edinmek için Chat uygulaması etkileşim etkinliklerini alma ve yanıtlama başlıklı makaleyi inceleyin.
Bu örnekte, kullanıcı bir Chat uygulamasına mesaj gönderir ve Chat uygulaması da kullanıcının adını ve avatar resmini gösteren bir kart mesajı göndererek yanıt verir:
Node.js
Python
Apps Komut Dosyası
Kart mesajlarını eşzamansız olarak gönderme
Kart mesajı göndermek için isteğinizde aşağıdakileri iletin:
- Uygulama kimlik doğrulamasıyla
chat.bot
yetkilendirme kapsamını belirtin. Kullanıcı kimlik doğrulamasıyla kart mesajı gönderemezsiniz. Message
kaynağındacreate
yöntemini çağırın.
Aşağıda kart mesajı örneği verilmiştir:
Uygulama kimlik doğrulamasıyla kart mesajı göndermek için aşağıdaki adımları uygulayın:
Python
- Çalışma dizininizde
chat_create_card_message.py
adında bir dosya oluşturun. chat_create_card_message.py
içine şu kodu ekleyin:from httplib2 import Http from oauth2client.service_account import ServiceAccountCredentials from apiclient.discovery import build # Specify required scopes. SCOPES = ['https://www.googleapis.com/auth/chat.bot'] # Specify service account details. CREDENTIALS = ServiceAccountCredentials.from_json_keyfile_name( 'credentials.json', SCOPES) # Build the URI and authenticate with the service account. chat = build('chat', 'v1', http=CREDENTIALS.authorize(Http())) # Create a Chat message. result = chat.spaces().messages().create( # The space to create the message in. # # Replace SPACE with a space name. # Obtain the space name from the spaces resource of Chat API, # or from a space's URL. parent='spaces/SPACE', # The message to create. body= { 'cardsV2': [{ 'cardId': 'createCardMessage', 'card': { 'header': { 'title': 'A card message!', 'subtitle': 'Created with the Chat API', 'imageUrl': 'https://developers.google.com/chat/images/chat-product-icon.png', 'imageType': 'CIRCLE' }, 'sections': [ { 'widgets': [ { 'buttonList': { 'buttons': [ { 'text': 'Read the docs!', 'onClick': { 'openLink': { 'url': 'https://developers.google.com/chat' } } } ] } } ] } ] } }] } ).execute() print(result)
Koddaki
SPACE
yerine, Chat API'dekispaces.list
yönteminden veya alanın URL'sinden alabileceğiniz bir alan adı girin.Çalışma dizininizde örneği derleyin ve çalıştırın:
python3 chat_create_card_message.py
Bir mesaj dizisi başlatma veya bir mesaj dizisini yanıtlama
Bir mesaj dizisi başlatmak için bir mesaj gönderin ve thread.name
alanını boş bırakın. Google Chat, mesaj dizisini oluştururken bu alanı doldurur. İsteğe bağlı olarak, ileti dizisinin adını özelleştirmek için thread.threadKey
alanını belirtin.
Bir mesaj dizisini yanıtlamak için mesaj dizisinin threadKey
veya name
alanını belirten bir mesaj gönderin. Mesaj dizisi bir kişi veya başka bir Chat uygulaması tarafından oluşturulduysa thread.name
alanını kullanmanız gerekir.
Eşleşen bir ileti dizisi bulunmazsa bir mesajın yeni bir ileti dizisi başlatması veya yayınlanmaması gerektiğini messageReplyOption
alanını ayarlayarak belirtebilirsiniz.
threadKey
alanı nameOfThread
olarak tanımlanmış bir ileti dizisini başlatmak veya yanıtlamak için aşağıdaki adımları uygulayın:
Python
- Çalışma dizininizde
chat_create_message_thread.py
adında bir dosya oluşturun. chat_create_message_thread.py
içine şu kodu ekleyin:from httplib2 import Http from oauth2client.service_account import ServiceAccountCredentials from apiclient.discovery import build # Specify required scopes. SCOPES = ['https://www.googleapis.com/auth/chat.bot'] # Specify service account details. CREDENTIALS = ServiceAccountCredentials.from_json_keyfile_name( 'credentials.json', SCOPES) # Build the URI and authenticate with the service account. chat = build('chat', 'v1', http=CREDENTIALS.authorize(Http())) # Create a Chat message. result = chat.spaces().messages().create( # The space to create the message in. # # Replace SPACE with a space name. # Obtain the space name from the spaces resource of Chat API, # or from a space's URL. parent='spaces/SPACE', # Whether to start a thread or reply to an existing one. # # Required when threading is enabled in a space unless starting a # thread. Ignored in other space types. Threading is enabled when # space.spaceThreadingState is THREADED_MESSAGES. # # REPLY_MESSAGE_FALLBACK_TO_NEW_THREAD replies to an existing thread # if one exists, otherwise it starts a new one. messageReplyOption='REPLY_MESSAGE_FALLBACK_TO_NEW_THREAD', # The message body. body={ # The message to create. 'text': 'Start or reply to another message in a thread!', # The thread to start or reply to. 'thread': { 'threadKey': 'nameOfThread' } } ).execute() print(result)
Koddaki
SPACE
yerine, Chat API'dekispaces.list
yönteminden veya alanın URL'sinden alabileceğiniz bir alan adı girin.Çalışma dizininizde örneği derleyin ve çalıştırın:
python3 chat_create_message_thread.py
Chat API, gönderilen mesajı ayrıntılı olarak gösteren bir Message
örneği döndürür.
Mesaj gönderme ve adlandırma
Bu bölümde, özel adla nasıl ileti gönderebileceğiniz açıklanmaktadır. Mesajları almak, güncellemek veya silmek için mesaj adlarını kullanırsınız.
Ayrıca özel bir ad atamak Chat uygulamasının, mesaj gönderilirken döndürülen yanıt gövdesinde name
mesajını kaydetmeden mesajı hatırlamasına da olanak tanır.
Özel bir ad atamak, oluşturulan name
alanının (mesajın kaynak adı) yerini almaz. Bunun yerine, özel adı clientAssignedMessageId
alanı olarak ayarlar. Bu alana, mesajı güncelleme veya silme gibi sonraki işlemleri işlerken başvurabilirsiniz.
Özel adlar için aşağıdaki şartlar geçerlidir:
client-
ile başlayın. Örneğin,client-custom-name
geçerli bir özel addır, ancakcustom-name
değildir.- Yalnızca küçük harf, rakam ve kısa çizgi içermelidir.
- Uzunluk en fazla 63 karakter olmalıdır.
- Mesaj gönderirken kullanılmış bir özel ad belirtmek hata döndürür, ancak
update
vedelete
gibi diğer yöntemler beklendiği gibi çalışır.
İleti gönderme ve adlandırma işlemleri aşağıda açıklanmıştır:
Python
- Çalışma dizininizde
chat_create_named_message.py
adında bir dosya oluşturun. chat_create_named_message.py
içine şu kodu ekleyin:from httplib2 import Http from oauth2client.service_account import ServiceAccountCredentials from apiclient.discovery import build # Specify required scopes. SCOPES = ['https://www.googleapis.com/auth/chat.bot'] # Specify service account details. CREDENTIALS = ServiceAccountCredentials.from_json_keyfile_name( 'credentials.json', SCOPES) # Build the URI and authenticate with the service account. chat = build('chat', 'v1', http=CREDENTIALS.authorize(Http())) # Create a Chat message with a custom name. result = chat.spaces().messages().create( # The space to create the message in. # # Replace SPACE with a space name. # Obtain the space name from the spaces resource of Chat API, # or from a space's URL. parent='spaces/SPACE', # Custom name for the message used to facilitate later operations. messageId='client-custom-name', # The message to create. body={'text': 'Hello, world!'} ).execute() print(result)
Koddaki
SPACE
yerine, Chat API'dekispaces.list
yönteminden veya alanın URL'sinden alabileceğiniz bir alan adı girin.Çalışma dizininizde örneği derleyin ve çalıştırın:
python3 chat_create_named_message.py
Chat API, gönderilen mesajı ayrıntılı olarak gösteren bir Message
örneği döndürür.
Sorunu giderin
Bir Google Chat uygulaması veya kart hata döndürdüğünde Chat arayüzünde "Bir sorun oluştu" veya "İsteğiniz işleme alınamıyor" mesajı gösterilir. Bazen Chat kullanıcı arayüzünde hata mesajı gösterilmez ancak Chat uygulaması veya kartı beklenmedik bir sonuç üretir. Örneğin, bir kart mesajı görünmeyebilir.
Chat kullanıcı arayüzünde bir hata mesajı gösterilmese de, Chat uygulamaları için hata günlük kaydı etkinken hataları düzeltmenize yardımcı olmak üzere açıklayıcı hata mesajları ve günlük verileri mevcuttur. Hataları görüntüleme, hata ayıklama ve düzeltme konusunda yardım almak için Google Chat hatalarını giderme ve düzeltme başlıklı makaleyi inceleyin.
İlgili konular
- Mesajı biçimlendirme.
- Mesajla ilgili ayrıntıları öğrenme.
- Alandaki mesajları listeleyin.
- Mesajları güncelleme.
- Bir mesajı silebilirsiniz.
- Google Chat mesajlarındaki kullanıcıları tanımlayın.
- Gelen webhook'ları kullanarak Google Chat'e mesaj gönderin.