Bu kılavuzda, Google Chat API'nin nasıl çağrılacağı açıklanmaktadır.
messages.create()
yöntemini kullanabilirsiniz:
- Metin, kart ve etkileşimli widget'lar içeren iletiler gönderin.
- Belirli bir Chat kullanıcısına gizli olarak mesaj gönderebilirsiniz.
- Bir mesaj dizisi başlatın veya bir mesaj dizisini yanıtlayın.
- Diğer Chat API'lerinde belirtebilmek için bir mesajı adlandırın kabul edersiniz.
Chat uygulamaları, messages.create()
yönteminin çağrılmasının yanı sıra
kullanıcı etkileşimlerine yanıt vermek için mesaj oluşturabilir ve gönderebilir (örneğin, bir
karşılama mesajı, kullanıcının Chat uygulamasını
boşluk oluşturur. Chat uygulamaları etkileşimlere yanıt verirken
etkileşimli iletişim kutuları ve bağlantı önizleme de dahil mesajlaşma özelliklerinin türleri
kullanır. Chat uygulaması, bir kullanıcıya yanıt vermek için
Chat API'yi çağırmadan mesajı eşzamanlı olarak gönderir. Öğrenmek için
etkileşimlere yanıt vermek için mesaj gönderme hakkında
Google Chat uygulamanızla olan etkileşimleri alın ve yanıtlayın.
Chat'in, Chat API ile oluşturulan mesajları görüntüleme ve ilişkilendirme şekli
messages.create()
yöntemini şunu kullanarak çağırabilirsiniz:
uygulama kimlik doğrulaması
ve kullanıcı kimlik doğrulaması.
Chat, mesajı göndereni farklı şekilde ilişkilendirir
değişiklik gösterir.
Chat uygulaması olarak kimlik doğrulaması yaptığınızda Chat uygulaması bu mesajı gönderir.
Kullanıcı olarak kimliğinizi doğruladığınızda Chat uygulaması, kullanıcı adına bir mesaj alırsınız. Chat ayrıca Chat uygulamasında mesajın adını görüntüleyin.
Kimlik doğrulama türü, hangi mesajlaşma özelliklerini ve arayüzleri birçok bilgi var. Uygulama kimlik doğrulaması sayesinde Chat uygulamaları, zengin metin içeren mesajlar gönderebilir. kart tabanlı arayüzler ve etkileşimli widget'lar. Chat kullanıcıları yalnızca mesajlarında metin gönderebildiğinden, şunları yapabilirsiniz: Kullanıcı kimlik doğrulamasını kullanarak mesaj oluştururken yalnızca metin ekleyin. Mesajlaşma hakkında daha fazla bilgi edinmek için özellikleri hakkında daha fazla bilgi için Google Chat mesajlarına genel bakış
Bu kılavuzda, bir ileti göndermek için kimlik doğrulama türlerinden herhangi birinin nasıl kullanılacağı .
Ön koşullar
Python
- İşletme veya Kuruluş Şuna erişimi olan Google Workspace hesabı: Google Chat.
- Ortamınızı ayarlayın:
- Bir Google Cloud projesi oluşturun.
- OAuth izin ekranını yapılandırın.
- 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ı.
- Şunu yükleyin: Python Google API İstemci Kitaplığı.
- Google Chat API'nizde nasıl kimlik doğrulama yapmak istediğinize bağlı olarak erişim kimlik bilgilerini oluşturun
istek:
- Chat kullanıcısı olarak kimliğinizi doğrulamak için:
OAuth istemci kimliği oluştur
kimlik bilgilerini iki kez tıklayın ve kimlik bilgilerini
client_secrets.json
dosyasını yerel dizininize ekleyin. - Chat uygulaması olarak kimliğinizi doğrulamak için:
hizmet hesabı oluştur
kimlik bilgilerini iki kez tıklayın ve kimlik bilgilerini
credentials.json
.
- Chat kullanıcısı olarak kimliğinizi doğrulamak için:
OAuth istemci kimliği oluştur
kimlik bilgilerini iki kez tıklayın ve kimlik bilgilerini
- Kimlik doğrulamasını kullanıcı olarak mı yoksa Chat uygulaması.
- Kimliği doğrulanmış kullanıcının veya Chat uygulamasını arayan kullanıcılar üye oldu. Chat uygulamasında Alana Chat uygulamasından ekleyin.
Bir kullanıcının adına kısa mesaj gönderme
Bu bölümde, kullanıcı kimlik doğrulaması. Kullanıcı kimlik doğrulamasıyla iletinin içeriği yalnızca metin içerebilir ve yalnızca şu kullanıcılara sunulan mesajlaşma özelliklerini Kart arayüzleri ve etkileşimli widget'lar gibi Chat uygulamaları
Kullanıcı kimlik doğrulamasını kullanarak messages.create()
çağrısı yapmak için
şu alanları kullanabilirsiniz:
- Bir yetkilendirme kapsamı
bu yöntem için kullanıcı kimlik doğrulamasını destekleyen bir fonksiyona sahiptir. Aşağıdaki örneklerde
chat.messages.create
kapsamı. - İçinde bulunduğu
Space
kaynağı mesajı yayınlayabilirsiniz. Kimliği doğrulanan kullanıcı boşluk oluşturur. Message
bir kaynaktır. İletinin içeriğini tanımlamak içintext
girin.
İsteğe bağlı olarak aşağıdakileri ekleyebilirsiniz:
- Aşağıdakileri yapmanıza olanak tanıyan
messageId
alanı diğer API isteklerinde kullanılacak mesajı adlandırın. thread.threadKey
vemessageReplyOption
alanlarını ileti dizisi başlatın veya yanıtlayın. Alan ileti dizisi kullanıyorsanız bu alan yoksayılır.
Bir kullanıcı adına kısa mesaj göndermek için aşağıdaki adımları uygulayın:
Python
- Çalışma dizininizde şu ada sahip bir dosya oluşturun:
chat_create_message_user.py
Aşağıdaki kodu
chat_create_message_user.py
bölümüne 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', # Optional. Sets custom ID for the message to use in other requests. messageId='client-myfirstusermessage', # The text message to create. body={ 'text': '👋 🌎Hello world! Text messages can contain things like:\n\n' + '* Hyperlinks 🔗\n' + '* Emojis 😄🎉\n' + '* Mentions of other Chat users `@` \n\n' 'For details, see the <https://developers.google.com/workspace/chat/format-messages|Chat API developer documentation>.' } ).execute() # Prints details about the created message. print(result) if __name__ == '__main__': main()
SPACE
değerini alanın kimliği ile değiştirinname
girin. Kimliği öğrenmek içinspaces.list()
yöntem veya alanın URL'sini kullanabilirsiniz.Çalışma dizininizde örneği derleyin ve çalıştırın:
python3 chat_create_message_user.py
URL istenirse URL'yi açarak uygulamanızda kullandığınız kapsama göre isteğinde bulunabilirsiniz.
Chat uygulaması mesajı oluşturur ve kimliği doğrulanmış
Kullanıcı, mesajı alanda yayınladığında. Komut satırı arayüzünüzde,
Chat API, yeni
Message
kaynak.
Chat uygulaması olarak mesaj gönderme
Bu bölümde metin, kart ve etkileşimli aksesuar widget'ları uygulama kimlik doğrulaması.
Uygulama kimlik doğrulamasını kullanarak messages.create()
işlevini çağırmak için
şu alanları kullanabilirsiniz:
chat.bot
yetkilendirme kapsamı.- İçinde bulunduğu
Space
kaynağı mesajı yayınlayabilirsiniz. Chat uygulaması alanın bir üyesi olur. Message
bir kaynaktır. İletinin içeriğini tanımlamak için zengin metin (text
), Bir veya daha fazla kart arayüzü (cardsV2
), ya da her ikisi de olabilir.
İsteğe bağlı olarak aşağıdakileri ekleyebilirsiniz:
- Dahil edilecek
accessoryWidgets
alanı iletinin alt kısmındaki etkileşimli düğmeler. privateMessageViewer
alanı Belirli bir kullanıcıya iletiyi özel olarak gönderebilirsiniz.- Aşağıdakileri yapmanıza olanak tanıyan
messageId
alanı diğer API isteklerinde kullanılacak mesajı adlandırın. thread.threadKey
vemessageReplyOption
alanlarını ileti dizisi başlatın veya yanıtlayın. Alan ileti dizisi kullanıyorsanız bu alan yoksayılır.
Maksimum ileti boyutu (metin ve kartlar dahil) 32.000 bayttır. Bu boyutu aşan bir mesaj göndermek için Chat uygulamanız birden fazla ileti göndermesi gerekir.
Chat uygulaması olarak yayınlanan bir mesaj göndermek için kullanılan metin mesajın alt kısmında bir metin, bir kart ve tıklanabilir bir düğme, şu adımları uygulayın:
Python
- Çalışma dizininizde şu ada sahip bir dosya oluşturun:
chat_create_message_app.py
Aşağıdaki kodu
chat_create_message_app.py
bölümüne ekleyin:from apiclient.discovery import build from google.oauth2 import service_account # Specify required scopes. SCOPES = ['https://www.googleapis.com/auth/chat.bot'] # Specify service account details. CREDENTIALS = service_account.Credentials.from_service_account_file( 'credentials.json', scopes=SCOPES) # Build the URI and authenticate with the service account. chat = build('chat', 'v1', credentials=CREDENTIALS) # Specify the Chat space where the message is posted. Obtain the ID # from the resource name, or from the space's URL. SPACE = 'spaces/SPACE' # Create a Chat message. result = chat.spaces().messages().create( # The Chat space. parent=SPACE, # Optional. Sets custom ID for the message to use in other requests. messageId='client-myfirstappmessage', # The message to create with text, a card, and a button at the # bottom of the message. body= { 'text': '👋 🌎Hello world! I created this message by calling the Chat API\'s `messages.create()` method.', 'cardsV2': [{ 'cardId': 'myCardId', 'card': { 'header': { 'title': 'About this message', 'imageUrl': 'https://fonts.gstatic.com/s/i/short-term/release/googlesymbols/info/default/24px.svg', 'imageType': 'CIRCLE' }, "sections": [ { "header": "Contents", "widgets": [ { "textParagraph": { "text": "🔡 <b>Text</b> which can include hyperlinks 🔗, emojis 😄🎉, and @mentions 🗣️." }}, { "textParagraph": { "text": "🖼️ A <b>card</b> to display visual elements and request information such as text 🔤, dates and times 📅, and selections ☑️." }}, { "textParagraph": { "text": "👉🔘 An <b>accessory widget</b> which adds a button to the bottom of a message." }}, ] }, { "header": "What's next", "collapsible": True, "widgets": [ { "textParagraph": { "text": "❤️ <a href='https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces.messages.reactions/create'>Add a reaction</a>." }}, { "textParagraph": { "text": "🔄 <a href='https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces.messages/patch'>Update</a> or ❌ <a href='https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces.messages/delete'>delete</a> the message." }}, { "textParagraph": { "text": '💡 <b>Pro tip</b>: To specify the message in other API requests, use its custom name: <i>' + SPACE + '/messages/client-myfirstappmessage</i>.' }} ] } ]} }], "accessoryWidgets": [ { "buttonList": { "buttons": [ { "text": "View documentation", "altText": "Opens a new browser tab and navigates to the Google Chat developer documentation website.", "icon": { "material_icon": { "name": "link" } }, "onClick": { "openLink": { "url": "https://developers.google.com/workspace/chat/create-messages" } } } ] } } ] } ).execute() print(result)
SPACE
değerini alanın kimliği ile değiştirinname
girin. Kimliği öğrenmek içinspaces.list()
yöntem veya alanın URL'sini kullanabilirsiniz.Çalışma dizininizde örneği derleyin ve çalıştırın:
python3 chat_create_message_app.py
Chat uygulaması, mesajı şurada oluşturur ve yayınlar:
boşluk oluşturur. Chat API, komut satırı arayüzünüzde
yeni
Message
kaynak.
İletinin alt kısmına etkileşimli widget'lar ekleme
Önceki bölümde verilen kod örneğinde Chat uygulaması mesajında, ekranın en üstünde tıklanabilir bir düğme gösteriliyor aksesuar widget'ı olarak bilinen reklam öğesinin alt kısmına bir öğe ekler. Aksesuar widget'ları bir mesajdaki metin veya kartlardan sonra görünür. Bu widget'ları kullanarak kullanıcıların iletinizle pek çok şekilde etkileşim kurmasına olanak tanır. Örneğin:
- Bir mesajın doğruluğunu veya memnuniyetini değerlendirin.
- Mesajla veya Chat uygulamasıyla ilgili bir sorunu bildirin.
- Dokümanlar gibi ilgili içeriklerin bağlantısını açın.
- Benzer mesajları Chat uygulamasında kapatma veya erteleme belirli bir süre boyunca geçerli.
Aksesuar widget'ları eklemek için
accessoryWidgets[]
alanına giriş yapın ve istediğiniz bir veya daha fazla widget'ı
dahil edilir.
Aşağıdaki resimde, Kullanıcıların deneyimlerini değerlendirebilmeleri için aksesuar widget'ları içeren bir kısa mesaj .
Aşağıda,
iki aksesuar düğmesi. Bir kullanıcı bir düğmeyi tıkladığında ilgili düğme
işlevi (doUpvote
gibi) etkileşimi işler:
"text": "Rate your experience with this Chat app.",
"accessoryWidgets": [
{
"buttonList": {
"buttons": [
{
"icon": {
"material_icon": {
"name": "thumb_up"
}
},
"color": {
"red": 0,
"blue": 255,
"green": 0
},
"onClick": {
"action": {
"function": "doUpvote",
}
}
},
{
"icon": {
"material_icon": {
"name": "thumb_down"
}
},
"color": {
"red": 0,
"blue": 255,
"green": 0
},
"onClick": {
"action": {
"function": "doDownvote",
}
}
}
]
}
}
]
Gizli olarak ileti gönderme
Chat uygulamaları mesajları gizli olarak gönderebilir. Böylece Mesaj, yalnızca alandaki belirli bir kullanıcıya görünür. Bir Chat uygulaması bir özel mesaj gönderir, kullanıcıya iletinin yalnızca kendisi tarafından görülebildiğini bildiren bir etiket gösterir.
Chat API'yi kullanarak gizli olarak mesaj göndermek için
privateMessageViewer
alanına girebilirsiniz. Kullanıcıyı belirtmek için değeri
User
kaynağını
Chat kullanıcısını temsil eder. Ayrıca şunu da kullanabilirsiniz:
name
Aşağıdaki örnekte gösterildiği gibi User
kaynağı:
{
"text": "Hello private world!",
"privateMessageViewer": {
"name": "users/USER_ID"
}
}
USER_ID
adlı cihazı değiştirin
benzersiz bir kimlikle (ör. 12345678987654321
veya
[email protected]
. Kullanıcıları belirtme hakkında daha fazla bilgi edinmek için bkz.
Google Chat kullanıcılarını belirleyin ve belirtin.
Gizli olarak ileti göndermek için isteğinizde aşağıdakileri atlamanız gerekir:
Bir mesaj dizisi başlatın veya bir mesaj dizisinde yanıt verin
Mesaj dizisi kullanan alanlarda yeni bir mesajın mesaj dizisi mi başlatacağını yoksa yanıt mı başlatacağını belirleyebilirsiniz mevcut bir ileti dizisinde.
Chat API'yi kullanarak oluşturduğunuz mesajlar varsayılan olarak yeni bir ileti dizisi. İleti dizisini tanımlamanıza ve daha sonra yanıtlamanıza yardımcı olması için isteğinizdeki iş parçacığı anahtarı:
- İsteğinizin gövdesinde
thread.threadKey
girin. - Sorgu parametresini belirtin
messageReplyOption
anahtar zaten varsa ne olacağını belirlemek için kullanılır.
Mevcut bir mesaj dizisine yanıt veren bir mesaj oluşturmak için:
- İsteğinizin gövdesine
thread
alanını ekleyin. Ayarlandığında şunları yapabilirsiniz: belirtinthreadKey
öğrenebilirsiniz. Aksi takdirdename
yardımcı oluyorum. messageReplyOption
sorgu parametresini belirtin.
Aşağıdaki JSON dosyasında,
helloWorldThread
anahtarıyla bir ileti dizisi başlatır veya ileti dizisini yanıtlar:
{
'thread': {
'threadKey': 'helloWorldThread',
},
'text': '👋 🌎Hello world!'
}
İletiyi adlandırma
Gelecekteki API çağrılarında bir mesaj almak veya belirtmek için mesaja ad verebilirsiniz
messages.create()
isteğinizdeki messageId
alanını ayarlayarak bu işlemi yapabilirsiniz.
İletinizi adlandırmak,
mesajın kaynak adından sistem tarafından atanan kimlik (
name
alanı) ekleyebilirsiniz.
Örneğin, get()
yöntemini kullanarak bir iletiyi almak için
kaynak adı. Kaynak adı:
spaces/{space}/messages/{message}
olarak biçimlendirilir (burada {message}
, temsil eder).
veya dosyayı oluştururken ayarladığınız özel ad, sistem tarafından atanan kimliğin
mesajını alırsınız.
Bir iletiyi adlandırmak için
messageId
alanına girin. messageId
alanı,
clientAssignedMessageId
Message
kaynağının
Bir mesajı yalnızca mesajı oluştururken adlandırabilirsiniz. Adlarınızı, e-posta Mevcut mesajlar için özel bir kimlik değiştirme. Özel kimlik aşağıdaki özelliklere sahip olmalıdır: koşullar:
client-
ile başlar. Örneğin,client-custom-name
geçerli bir özeldir Kimlik ancakcustom-name
değil.- En fazla 63 karakterden oluşur ve yalnızca küçük harf, rakam ve kısa çizgilerle gösterilir.
- Bir alan içinde benzersiz olmalıdır. Bir Chat uygulaması farklı mesajlar için aynı özel kimliği kullanın.
Sorun giderme
Bir Google Chat uygulaması veya card bir hata döndürürse Chat arayüzünde "Bir sorun oluştu" mesajı gösteriliyor. veya "İsteğiniz işlenemiyor." Chat kullanıcı arayüzü herhangi bir hata mesajı görüntülenmiyor ancak Chat uygulaması veya kart beklenmeyen bir sonuç veriyorsa; Örneğin karttaki bir mesajda görünür.
Chat kullanıcı arayüzünde hata mesajı görüntülenmese de Hataları düzeltmenize yardımcı olmak için açıklayıcı hata mesajları ve günlük verileri sunulur Chat uygulamaları için hata günlük kaydı etkinleştirildiğinde. Görüntüleme konusunda yardım için ve hataları düzeltme ile ilgili daha fazla bilgi edinmek için Google Chat hatalarını giderme ve düzeltme
İlgili konular
- Kart Oluşturucu'yu kullanarak Chat uygulamaları için JSON kart mesajları tasarlayıp önizleme.
- İletileri biçimlendirin.
- Bir mesajla ilgili ayrıntıları öğrenme
- Bir alandaki mesajları listeleyin.
- Mesajları güncelleme
- İletiyi silme
- Google Chat mesajlarında kullanıcıları tespit edin.
- Gelen webhook'larla Google Chat'e mesaj gönderme.