Bu kılavuzda, kullanıcılar adına etkileşimli kartlar içeren mesajlar oluşturmak, mevcut mesajlara kart eklemek ve bu kartları eşzamansız olarak güncellemek için Google Chat API'sinin nasıl kullanılacağı açıklanmaktadır.
Kart oluşturma ve güncelleme işlemleri, aşağıdakileri yapmak istediğinizde yararlıdır:
- Bir kullanıcı adına bir görevi veya harici kaynağı temsil eden bir kart yayınlayın.
- Etkileşimli bağlam veya iş akışları sağlamak için mevcut bir kullanıcı mesajına kart ekleyin.
- Kartın durumunu (ör. "Devam Ediyor"dan "Tamamlandı"ya) kullanıcı etkileşimi beklenmeden harici etkinliklere göre güncelleyin.
- Kullanıcı mesajındaki bir kartın içeriğini yenileme (ör. bağlantı önizlemesi).
Ön koşullar
Node.js
- Google Chat'e erişimi olan bir Business veya Enterprise Google Workspace hesabı.
- Ortamınızı ayarlayın:
- Google Cloud projesi oluşturun.
- OAuth kullanıcı rızası ekranını yapılandırın.
- Google Chat API'yi etkinleştirin ve yapılandırın. Chat uygulamanız için ad, simge ve açıklama ekleyin.
- Node.js Google API İstemci Kitaplığı'nı yükleyin.
- Google Chat API isteğinizde kimlik doğrulamayı nasıl yapmak istediğinize bağlı olarak erişim kimlik bilgileri oluşturun:
- Chat kullanıcısı olarak kimlik doğrulamak için OAuth istemci kimliği kimlik bilgileri oluşturun ve kimlik bilgilerini yerel dizininize
credentials.jsonadlı bir JSON dosyası olarak kaydedin. - Chat uygulaması olarak kimlik doğrulamak için
hizmet hesabı kimlik bilgileri oluşturunve kimlik bilgilerini
credentials.jsonadlı bir JSON dosyası olarak kaydedin.
- Chat kullanıcısı olarak kimlik doğrulamak için OAuth istemci kimliği kimlik bilgileri oluşturun ve kimlik bilgilerini yerel dizininize
- Kullanıcı veya Chat uygulaması olarak kimliğinizi doğrulamak isteyip istemediğinize bağlı olarak bir yetkilendirme kapsamı seçin.
Python
- Google Chat'e erişimi olan bir Business veya Enterprise Google Workspace hesabı.
- Ortamınızı ayarlayın:
- Google Cloud projesi oluşturun.
- OAuth kullanıcı rızası ekranını yapılandırın.
- Google Chat API'yi etkinleştirin ve yapılandırın. Chat uygulamanız için ad, simge ve açıklama ekleyin.
- Python Google API İstemci Kitaplığı'nı yükleyin.
- Google Chat API isteğinizde kimlik doğrulaması yapmak istediğiniz yönteme göre erişim kimlik bilgileri oluşturun:
- Chat kullanıcısı olarak kimlik doğrulamak için OAuth istemci kimliği kimlik bilgileri oluşturun ve kimlik bilgilerini yerel dizininize
credentials.jsonadlı bir JSON dosyası olarak kaydedin. - Chat uygulaması olarak kimlik doğrulamak için
hizmet hesabı kimlik bilgileri oluşturunve kimlik bilgilerini
credentials.jsonadlı bir JSON dosyası olarak kaydedin.
- Chat kullanıcısı olarak kimlik doğrulamak için OAuth istemci kimliği kimlik bilgileri oluşturun ve kimlik bilgilerini yerel dizininize
- Kullanıcı veya Chat uygulaması olarak kimliğinizi doğrulamak isteyip istemediğinize bağlı olarak bir yetkilendirme kapsamı seçin.
Java
- Google Chat'e erişimi olan bir Business veya Enterprise Google Workspace hesabı.
- Ortamınızı ayarlayın:
- Google Cloud projesi oluşturun.
- OAuth kullanıcı rızası ekranını yapılandırın.
- Google Chat API'yi etkinleştirin ve yapılandırın. Chat uygulamanız için ad, simge ve açıklama ekleyin.
- Java Google API istemci kitaplığını yükleyin.
- Google Chat API isteğinizde kimlik doğrulaması yapmak istediğiniz yönteme göre erişim kimlik bilgileri oluşturun:
- Chat kullanıcısı olarak kimlik doğrulamak için OAuth istemci kimliği kimlik bilgileri oluşturun ve kimlik bilgilerini yerel dizininize
credentials.jsonadlı bir JSON dosyası olarak kaydedin. - Chat uygulaması olarak kimlik doğrulamak için
hizmet hesabı kimlik bilgileri oluşturunve kimlik bilgilerini
credentials.jsonadlı bir JSON dosyası olarak kaydedin.
- Chat kullanıcısı olarak kimlik doğrulamak için OAuth istemci kimliği kimlik bilgileri oluşturun ve kimlik bilgilerini yerel dizininize
- Kullanıcı veya Chat uygulaması olarak kimliğinizi doğrulamak isteyip istemediğinize bağlı olarak bir yetkilendirme kapsamı seçin.
Apps Komut Dosyası
- Google Chat'e erişimi olan bir Business veya Enterprise Google Workspace hesabı.
- Ortamınızı ayarlayın:
- Google Cloud projesi oluşturun.
- OAuth kullanıcı rızası ekranını yapılandırın.
- 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.
- Bu kılavuzda kullanıcı veya uygulama kimlik doğrulamasını kullanmanız gerekir. Chat uygulaması olarak kimlik doğrulamak için hizmet hesabı kimlik bilgileri oluşturun. Adımlar için Google Chat uygulaması olarak kimlik doğrulama ve yetkilendirme başlıklı makaleyi inceleyin.
- Kullanıcı veya Chat uygulaması olarak kimliğinizi doğrulamak isteyip istemediğinize bağlı olarak bir yetkilendirme kapsamı seçin.
Kullanıcı adına kart mesajı oluşturma
Bir kullanıcı adına kart içeren mesaj oluşturmak için kullanıcı kimlik doğrulamasını kullanın.
Mesajı oluşturmak için isteğinizde aşağıdakileri belirtin:
chat.messages.createveyachat.messagesyetkilendirme kapsamı.- Kart verilerini içeren
MessagekaynağındakicardsV2alanı. - Asenkron güncellemeler için gerekli olan her kartın
cardId.
Aşağıdaki örnekte, bir kullanıcı adına kart içeren mesajın nasıl oluşturulacağı gösterilmektedir:
Node.js
/**
* This sample shows how to create a message with a card on behalf of a user.
*/
const {google} = require('googleapis');
const {auth} = require('google-auth-library');
async function main() {
// Create a client
const authClient = await auth.getClient({
scopes: ['https://www.googleapis.com/auth/chat.messages.create']
});
google.options({auth: authClient});
// Initialize the Chat API
const chat = google.chat({version: 'v1'});
// The space to create the message in.
const parent = 'spaces/SPACE_NAME';
// Create the request
const request = {
parent: parent,
requestBody: {
text: 'Here is a card created on my behalf:',
cardsV2: [{
cardId: 'unique-card-id',
card: {
header: {
title: 'Card Title',
subtitle: 'Card Subtitle'
},
sections: [{
widgets: [{
textParagraph: {
text: 'This card is attached to a user message.'
}
}]
}]
}
}]
}
};
// Call the API
const response = await chat.spaces.messages.create(request);
// Handle the response
console.log(response.data);
}
main().catch(console.error);
Python
"""
This sample shows how to create a message with a card on behalf of a user.
"""
from google.oauth2 import service_account
from googleapiclient.discovery import build
import google.auth
def create_message_with_card():
# Create a client
scopes = ["https://www.googleapis.com/auth/chat.messages.create"]
credentials, _ = google.auth.default(scopes=scopes)
# Build the service endpoint for Chat API.
service = build('chat', 'v1', credentials=credentials)
# The space to create the message in.
parent = "spaces/SPACE_NAME"
# Create the request
result = service.spaces().messages().create(
parent=parent,
body={
'text': 'Here is a card created on my behalf:',
'cardsV2': [{
'cardId': 'unique-card-id',
'card': {
'header': {
'title': 'Card Title',
'subtitle': 'Card Subtitle'
},
'sections': [{
'widgets': [{
'textParagraph': {
'text': 'This card is attached to a user message.'
}
}]
}]
}
}]
}
).execute()
print(result)
if __name__ == "__main__":
create_message_with_card()
Java
/**
* This sample shows how to create a message with a card on behalf of a user.
*/
import com.google.api.client.googleapis.javanet.GoogleNetHttpTransport;
import com.google.api.client.http.GenericUrl;
import com.google.api.client.http.HttpRequest;
import com.google.api.client.http.HttpRequestFactory;
import com.google.api.client.http.HttpTransport;
import com.google.api.client.http.json.JsonHttpContent;
import com.google.api.client.json.gson.GsonFactory;
import com.google.auth.http.HttpCredentialsAdapter;
import com.google.auth.oauth2.GoogleCredentials;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
public class CreateMessageWithCard {
public static void main(String[] args) throws Exception {
HttpTransport transport = GoogleNetHttpTransport.newTrustedTransport();
GsonFactory jsonFactory = GsonFactory.getDefaultInstance();
GoogleCredentials credentials = GoogleCredentials.getApplicationDefault()
.createScoped(Arrays.asList("https://www.googleapis.com/auth/chat.messages.create"));
HttpRequestFactory requestFactory = transport.createRequestFactory(new HttpCredentialsAdapter(credentials));
String parent = "spaces/SPACE_NAME";
GenericUrl url = new GenericUrl("https://chat.googleapis.com/v1/" + parent + "/messages");
// Construct the message body
Map<String, Object> message = new HashMap<>();
message.put("text", "Here is a card created on my behalf:");
Map<String, Object> header = new HashMap<>();
header.put("title", "Card Title");
header.put("subtitle", "Card Subtitle");
Map<String, Object> textParagraph = new HashMap<>();
textParagraph.put("text", "This card is attached to a user message.");
Map<String, Object> widget = new HashMap<>();
widget.put("textParagraph", textParagraph);
Map<String, Object> section = new HashMap<>();
section.put("widgets", Collections.singletonList(widget));
Map<String, Object> card = new HashMap<>();
card.put("header", header);
card.put("sections", Collections.singletonList(section));
Map<String, Object> cardWithId = new HashMap<>();
cardWithId.put("cardId", "unique-card-id");
cardWithId.put("card", card);
message.put("cardsV2", Collections.singletonList(cardWithId));
HttpRequest request = requestFactory.buildPostRequest(url, new JsonHttpContent(jsonFactory, message));
System.out.println(request.execute().parseAsString());
}
}
Apps Komut Dosyası
/**
* This sample shows how to create a message with a card on behalf of a user.
*/
function createMessageWithCard() {
const parent = 'spaces/SPACE_NAME';
const url = `https://chat.googleapis.com/v1/${parent}/messages`;
const message = {
text: 'Here is a card created on my behalf:',
cardsV2: [{
cardId: 'unique-card-id',
card: {
header: {
title: 'Card Title',
subtitle: 'Card Subtitle'
},
sections: [{
widgets: [{
textParagraph: {
text: 'This card is attached to a user message.'
}
}]
}]
}
}]
};
const options = {
method: 'post',
headers: {
Authorization: 'Bearer ' + ScriptApp.getOAuthToken()
},
contentType: 'application/json',
payload: JSON.stringify(message),
muteHttpExceptions: true
};
try {
const response = UrlFetchApp.fetch(url, options);
console.log(response.getContentText());
} catch (err) {
console.log('Failed to create message: ' + err.message);
}
}
Kullanıcı adına mevcut bir mesaja kart ekleme
Bir kullanıcı adına kartları mevcut bir mesaja eklemek için kullanıcı kimlik doğrulaması kullanarak patch yöntemini çağırın.
Bir mesaja kart eklemek için isteğinizde aşağıdakileri belirtin:
chat.messagesyetkilendirme kapsamı.- Güncellenecek mesajın
name,spaces/{space}/messages/{message}biçiminde. updateMaskdeğericards_v2olarak ayarlandı. Kullanıcı kimlik doğrulamasıyla bir ileti güncellenirken güncelleme maskesindeki tek alancards_v2olmalıdır.textvecards_v2mesajlarını aynı istekte güncelleyemezsiniz.- Kart verilerini içeren
MessagekaynağındakicardsV2alanı. - Sonraki eşzamansız güncellemeler için gerekli olan her kartın
cardId.
Aşağıdaki örnekte, bir kullanıcı adına mevcut bir iletiye nasıl kart ekleneceği gösterilmektedir:
Node.js
/**
* This sample shows how to attach a card to an existing message on behalf of a user.
*/
const {google} = require('googleapis');
const {auth} = require('google-auth-library');
async function main() {
// Create a client with user credentials
const authClient = await auth.getClient({
scopes: ['https://www.googleapis.com/auth/chat.messages']
});
google.options({auth: authClient});
// Initialize the Chat API
const chat = google.chat({version: 'v1'});
// The message to update.
const messageName = 'spaces/SPACE_NAME/messages/MESSAGE_ID';
// Create the request
const request = {
name: messageName,
updateMask: 'cards_v2',
requestBody: {
cardsV2: [{
cardId: 'unique-card-id',
card: {
header: {
title: 'Card Title',
subtitle: 'Card Subtitle'
},
sections: [{
widgets: [{
textParagraph: {
text: 'This card was attached to an existing user message.'
}
}]
}]
}
}]
}
};
// Call the API
const response = await chat.spaces.messages.patch(request);
// Handle the response
console.log(response.data);
}
main().catch(console.error);
Python
"""
This sample shows how to attach a card to an existing message on behalf of a user.
"""
from googleapiclient.discovery import build
import google.auth
def attach_card_to_message():
# Create a client with user credentials
scopes = ["https://www.googleapis.com/auth/chat.messages"]
credentials, _ = google.auth.default(scopes=scopes)
# Build the service endpoint for Chat API.
service = build('chat', 'v1', credentials=credentials)
# The message to update.
message_name = "spaces/SPACE_NAME/messages/MESSAGE_ID"
# Create the request
result = service.spaces().messages().patch(
name=message_name,
updateMask="cards_v2",
body={
'cardsV2': [{
'cardId': 'unique-card-id',
'card': {
'header': {
'title': 'Card Title',
'subtitle': 'Card Subtitle'
},
'sections': [{
'widgets': [{
'textParagraph': {
'text': 'This card was attached to an existing user message.'
}
}]
}]
}
}]
}
).execute()
print(result)
if __name__ == "__main__":
attach_card_to_message()
Java
/**
* This sample shows how to attach a card to an existing message on behalf of a user.
*/
import com.google.api.client.googleapis.javanet.GoogleNetHttpTransport;
import com.google.api.client.http.GenericUrl;
import com.google.api.client.http.HttpRequest;
import com.google.api.client.http.HttpRequestFactory;
import com.google.api.client.http.HttpTransport;
import com.google.api.client.http.json.JsonHttpContent;
import com.google.api.client.json.gson.GsonFactory;
import com.google.auth.http.HttpCredentialsAdapter;
import com.google.auth.oauth2.GoogleCredentials;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
public class AttachCardToMessage {
public static void main(String[] args) throws Exception {
HttpTransport transport = GoogleNetHttpTransport.newTrustedTransport();
GsonFactory jsonFactory = GsonFactory.getDefaultInstance();
GoogleCredentials credentials = GoogleCredentials.getApplicationDefault()
.createScoped(Arrays.asList("https://www.googleapis.com/auth/chat.messages"));
HttpRequestFactory requestFactory = transport.createRequestFactory(new HttpCredentialsAdapter(credentials));
String messageName = "spaces/SPACE_NAME/messages/MESSAGE_ID";
GenericUrl url = new GenericUrl("https://chat.googleapis.com/v1/" + messageName + "?updateMask=cards_v2");
// Construct the card body
Map<String, Object> header = new HashMap<>();
header.put("title", "Card Title");
header.put("subtitle", "Card Subtitle");
Map<String, Object> textParagraph = new HashMap<>();
textParagraph.put("text", "This card was attached to an existing user message.");
Map<String, Object> widget = new HashMap<>();
widget.put("textParagraph", textParagraph);
Map<String, Object> section = new HashMap<>();
section.put("widgets", Collections.singletonList(widget));
Map<String, Object> card = new HashMap<>();
card.put("header", header);
card.put("sections", Collections.singletonList(section));
Map<String, Object> cardWithId = new HashMap<>();
cardWithId.put("cardId", "unique-card-id");
cardWithId.put("card", card);
Map<String, Object> message = new HashMap<>();
message.put("cardsV2", Collections.singletonList(cardWithId));
HttpRequest request = requestFactory.buildPatchRequest(url, new JsonHttpContent(jsonFactory, message));
System.out.println(request.execute().parseAsString());
}
}
Apps Komut Dosyası
/**
* This sample shows how to attach a card to an existing message on behalf of a user.
*/
function attachCardToMessage() {
const messageName = 'spaces/SPACE_NAME/messages/MESSAGE_ID';
const url = `https://chat.googleapis.com/v1/${messageName}?updateMask=cards_v2`;
const message = {
cardsV2: [{
cardId: 'unique-card-id',
card: {
header: {
title: 'Card Title',
subtitle: 'Card Subtitle'
},
sections: [{
widgets: [{
textParagraph: {
text: 'This card was attached to an existing user message.'
}
}]
}]
}
}]
};
const options = {
method: 'patch',
headers: {
Authorization: 'Bearer ' + ScriptApp.getOAuthToken()
},
contentType: 'application/json',
payload: JSON.stringify(message),
muteHttpExceptions: true
};
try {
const response = UrlFetchApp.fetch(url, options);
console.log(response.getContentText());
} catch (err) {
console.log('Failed to attach card: ' + err.message);
}
}
Kartları eşzamansız olarak güncelleme
Kartlarla mesaj oluşturduktan veya mevcut bir mesaja kart ekledikten sonra, uygulama kimlik doğrulaması kullanarak kartları eşzamansız olarak güncelleyebilirsiniz. Bu sayede uygulamanız, kullanıcı etkileşimi gerektirmeden kart içeriğini yenileyebilir. Kartı kullanıcının mesajına ekleyen Chat uygulaması, kartı değiştirebilir. Kullanıcı mesaj metnini düzenlerse uygulamaya ait kartlar kaldırılır ve uygulamanız artık bu kartları güncelleyemez.
Kartlar eşzamansız olarak güncellendiğinde Google Chat, kart içeriğinin mesajdan bağımsız olarak yenilendiğini kullanıcılara bildirmek için kartın ilişkilendirmesinin yanında Düzenlendi göstergesini görüntüler.
Kartları güncellemek için replaceCards yöntemini aşağıdaki bilgilerle çağırın:
chat.botyetkilendirme kapsamı.- Güncellenecek mesajın
name. - Yeni
cardsV2listesi. Bu işlem, iletideki tüm mevcut kartların yerini alır. Boş bir liste sağlarsanız kartlar kaldırılır. Tüm kartları kaldırırsanız bunları tekrar eklemek içinreplaceCards'yı kullanamazsınız. Bunun yerine, yeni kart eklemek için kullanıcı kimlik doğrulamasıyla birlikteUpdateMessage'ı kullanın.
Aşağıdaki örnekte, bir mesajın kartlarının nasıl güncelleneceği gösterilmektedir:
Node.js
/**
* This sample shows how to update cards on a message.
*/
const {google} = require('googleapis');
const {auth} = require('google-auth-library');
async function main() {
// Create a client with app credentials
const authClient = await auth.getClient({
scopes: ['https://www.googleapis.com/auth/chat.bot']
});
google.options({auth: authClient});
// Initialize the Chat API
const chat = google.chat({version: 'v1'});
// The message to update.
const messageName = 'spaces/SPACE_NAME/messages/MESSAGE_ID';
// Create the request
const request = {
name: messageName,
requestBody: {
cardsV2: [{
cardId: 'unique-card-id',
card: {
header: {
title: 'Updated Card Title',
subtitle: 'Updated Card Subtitle'
},
sections: [{
widgets: [{
textParagraph: {
text: 'The card content has been updated asynchronously.'
}
}]
}]
}
}]
}
};
// Call the API
await chat.spaces.messages.replaceCards(request);
console.log('Cards updated.');
}
main().catch(console.error);
Python
"""
This sample shows how to update cards on a message.
"""
from google.oauth2 import service_account
from googleapiclient.discovery import build
import google.auth
def replace_message_cards():
# Create a client with app credentials
scopes = ["https://www.googleapis.com/auth/chat.bot"]
credentials, _ = google.auth.default(scopes=scopes)
# Build the service endpoint for Chat API.
service = build('chat', 'v1', credentials=credentials)
# The message to update.
message_name = "spaces/SPACE_NAME/messages/MESSAGE_ID"
# Create the request
result = service.spaces().messages().replaceCards(
name=message_name,
body={
'cardsV2': [{
'cardId': 'unique-card-id',
'card': {
'header': {
'title': 'Updated Card Title',
'subtitle': 'Updated Card Subtitle'
},
'sections': [{
'widgets': [{
'textParagraph': {
'text': 'The card content has been updated asynchronously.'
}
}]
}]
}
}]
}
).execute()
print("Cards updated.")
if __name__ == "__main__":
replace_message_cards()
Java
/**
* This sample shows how to update cards on a message.
*/
import com.google.api.client.googleapis.javanet.GoogleNetHttpTransport;
import com.google.api.client.http.GenericUrl;
import com.google.api.client.http.HttpRequest;
import com.google.api.client.http.HttpRequestFactory;
import com.google.api.client.http.HttpTransport;
import com.google.api.client.http.json.JsonHttpContent;
import com.google.api.client.json.gson.GsonFactory;
import com.google.auth.http.HttpCredentialsAdapter;
import com.google.auth.oauth2.GoogleCredentials;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
public class ReplaceMessageCards {
public static void main(String[] args) throws Exception {
HttpTransport transport = GoogleNetHttpTransport.newTrustedTransport();
GsonFactory jsonFactory = GsonFactory.getDefaultInstance();
GoogleCredentials credentials = GoogleCredentials.getApplicationDefault()
.createScoped(Arrays.asList("https://www.googleapis.com/auth/chat.bot"));
HttpRequestFactory requestFactory = transport.createRequestFactory(new HttpCredentialsAdapter(credentials));
String messageName = "spaces/SPACE_NAME/messages/MESSAGE_ID";
GenericUrl url = new GenericUrl("https://chat.googleapis.com/v1/" + messageName + ":replaceCards");
// Construct the body
Map<String, Object> header = new HashMap<>();
header.put("title", "Updated Card Title");
header.put("subtitle", "Updated Card Subtitle");
Map<String, Object> textParagraph = new HashMap<>();
textParagraph.put("text", "The card content has been updated asynchronously.");
Map<String, Object> widget = new HashMap<>();
widget.put("textParagraph", textParagraph);
Map<String, Object> section = new HashMap<>();
section.put("widgets", Collections.singletonList(widget));
Map<String, Object> card = new HashMap<>();
card.put("header", header);
card.put("sections", Collections.singletonList(section));
Map<String, Object> cardWithId = new HashMap<>();
cardWithId.put("cardId", "unique-card-id");
cardWithId.put("card", card);
Map<String, Object> body = new HashMap<>();
body.put("cardsV2", Collections.singletonList(cardWithId));
HttpRequest request = requestFactory.buildPostRequest(url, new JsonHttpContent(jsonFactory, body));
request.execute();
System.out.println("Cards updated.");
}
}
Apps Komut Dosyası
/**
* This sample shows how to update cards on a message.
*/
function replaceMessageCards() {
const messageName = 'spaces/SPACE_NAME/messages/MESSAGE_ID';
const url = `https://chat.googleapis.com/v1/${messageName}:replaceCards`;
const request = {
cardsV2: [{
cardId: 'unique-card-id',
card: {
header: {
title: 'Updated Card Title',
subtitle: 'Updated Card Subtitle'
},
sections: [{
widgets: [{
textParagraph: {
text: 'The card content has been updated asynchronously.'
}
}]
}]
}
}]
};
const options = {
method: 'post',
headers: {
Authorization: 'Bearer ' + ScriptApp.getOAuthToken()
},
contentType: 'application/json',
payload: JSON.stringify(request),
muteHttpExceptions: true
};
try {
const response = UrlFetchApp.fetch(url, options);
console.log('Cards updated.');
} catch (err) {
console.log('Failed to update cards: ' + err.message);
}
}
Sınırlamalar
Bir kullanıcı adına kart içeren mesajlar oluştururken veya kartları güncellerken Sohbet uygulaması alanın üyesi olmalıdır. Bu şart şu durumlarda geçerlidir:
- Bir kullanıcı adına kart içeren mesaj oluşturma.
- Bir kullanıcı adına mevcut bir iletiye kart ekleme.
- Bir mesajın kartlarını değiştirme veya güncelleme
Bu koşul, genellikle uygulamanın alanın üyesi olmasını gerektirmeyen kullanıcı kimlik doğrulaması kullanan diğer API'lerden farklıdır.
Kullanıcı kimlik doğrulamasıyla bir mesaj güncellenirken
updateMaskiçindecards_v2belirtilmişse aynı istekte başka alanlar (ör.text) güncellenemez.replaceCardsyöntemi, kart değiştirme ve kaldırma işlemlerini destekler. Kartları değiştirirken ek kartlar da ekleyebilirsiniz ancak kart içermeyen mesajlara kart ekleyemezsiniz. Kart içermeyen bir iletiye kart eklemek için kullanıcı kimlik doğrulamasıylaUpdateMessagekullanın.Kart ilişkilendirmesi ve sahipliği:
- Kullanıcı mesajına eklenen kartlar, yalnızca çıkış için kullanılan
CardWithId.owneralanında belirtildiği gibi, bunları ekleyen Chat uygulamasına atfedilir ve bu uygulamanın mülkiyetindedir. - Chat uygulaması yalnızca bir iletiye eklediği kartları değiştirebilir, diğer Chat uygulamalarının eklediği kartları değiştiremez.
- Kullanıcı mesajına eklenen kartlar, yalnızca çıkış için kullanılan
Bir kullanıcı mesaj metnini düzenlerse Chat uygulamasına ait kartlar kaldırılır ve artık güncellenemez.