Potwierdzenia wiadomości informują nadawcę, że jego wiadomości zostały odebrane lub przeczytaj. Potwierdzenia pozwalają użytkownikom sprawdzić, czy agent przeczytał ich wiadomości. wiedzą, że mogą się spodziewać odpowiedzi. Agent może też określić, kiedy użytkownicy otrzymują i czytania wiadomości, dzięki czemu możesz śledzić dane dotyczące rachunków, aby zwiększyć liczbę interakcji projektu.
Agenci otrzymują potwierdzenia na swoich webhookach. Odbieraj i przetwarzaj rachunki w taki sam sposób sposób otrzymywania wiadomości.
Jeśli użytkownik wysyła kilka potwierdzeń naraz, otrzymując lub odczytując kilka wiadomości, jeden ładunek zawiera wszystkie potwierdzenia wiadomości. Sprawdź każde potwierdzenie pod kątem wiadomości, z którą jest powiązany.
Rodzaje paragonów
Business Messages obsługuje potwierdzenia dostarczenia i odbioru.
Potwierdzenia od użytkowników
Pracownicy obsługi klienta mogą otrzymywać następujące potwierdzenia od użytkowników:
- Potwierdzenia dostarczenia (
DELIVERED
) wskazują, że użytkownik otrzymał wiadomość. od agenta. - Potwierdzenia odczytu (
READ
) wskazują, że użytkownik odczytał wiadomość od agenta.
Użytkownicy mogą zrezygnować z wysyłania potwierdzeń odbioru. Nawet jeśli zrezygnują z udostępniania, potwierdzeń odbioru wiadomości od pracowników obsługi klienta.
Rachunki od pracowników obsługi klienta
Użytkownicy mogą otrzymywać potwierdzenia odczytu od agentów.
Potwierdzenia odczytu (READ
) wskazują, że agent odczytał wiadomość użytkownika.
Jeśli rozmową zarządza więcej niż jeden pracownik obsługi klienta, zostanie wysłane potwierdzenie odczytu.
oznacza, że co najmniej jeden agent odczytał wiadomość użytkownika.
Format
Potwierdzenia od użytkowników
Potwierdzenia dostarczenia od użytkowników mają następujący format:
{ "agent": "brands/BRAND_ID/agents/AGENT_ID", "conversationId": "CONVERSATION_ID", "customAgentId": "CUSTOM_AGENT_ID", "sendTime": "SEND_TIME", "receipts" : { "receipts": [ { "message": "conversations/CONVERSATION_ID/messages/MESSAGE_ID", "receiptType": "DELIVERED", } ], "createTime": "RECEIPTS_CREATION_TIME", }, }
Potwierdzenia odbioru od użytkowników mają następujący format:
{ "agent": "brands/BRAND_ID/agents/AGENT_ID", "conversationId": "CONVERSATION_ID", "customAgentId": "CUSTOM_AGENT_ID", "sendTime": "SEND_TIME", "receipts" : { "receipts": [ { "message": "conversations/CONVERSATION_ID/messages/MESSAGE_ID", "receiptType": "READ", } ], "createTime": "RECEIPTS_CREATION_TIME", }, }
Informacje o opcjach formatowania i wartości znajdziesz w
UserMessage
oraz
Receipts
Rachunki od pracowników obsługi klienta
Ten kod wysyła potwierdzenie odczytu od agenta:
cURL
curl -X PATCH \ -H "`./oauth2l header --json 'PATH_TO_SERVICE_ACCOUNT_KEY' businessmessages`" \ -H "Content-Type: application/json" \ -d '{ "receiptType": "READ" }' \ "https://businessmessages.googleapis.com/v1/conversations/CONVERSATION_ID/messages/MESSAGE_ID/receipt"
Node.js
const businessmessages = require('businessmessages'); const uuidv4 = require('uuid/v4'); const {google} = require('googleapis'); // Initialize the Business Messages API let bmApi = new businessmessages.businessmessages_v1.Businessmessages({}); // Set the scope that we need for the Business Messages API const scopes = [ 'https://www.googleapis.com/auth/businessmessages', ]; // Set the private key to the service account file const privatekey = require('PATH_TO_SERVICE_ACCOUNT_KEY'); /** * Initializes the Google credentials for calling the * Business Messages API. */ async function initCredentials() { // Configure a JWT auth client let authClient = new google.auth.JWT( privatekey.client_email, null, privatekey.private_key, scopes, ); return new Promise(function(resolve, reject) { // Authenticate request authClient.authorize(function(err, tokens) { if (err) { reject(false); } else { resolve(authClient); } }); }); } /** * Sends a read receipt to a specific messageId. * * @param {string} conversationId The unique id for this user and agent. * @param {string} messageId The unique id for this message. */ async function sendReadReceipt(conversationId, messageId) { let authClient = await initCredentials(); // Create the payload for sending a read receipt let apiParams = { auth: authClient, name: 'conversations/' + conversationId + '/messages/' + messageId + '/receipt', resource: { receiptType:'READ' } }; // Call the updateReceipt create function using the // Business Messages client library bmApi.conversations.messages.updateReceipt(apiParams, {auth: authClient}, (err, response) => { console.log(err); console.log(response); }); } sendReadReceipt('CONVERSATION_ID', 'MESSAGE_ID');Ten kod opiera się na środowisku Node.js z biblioteki klienta Business Messages
Java
import com.google.api.client.googleapis.services.AbstractGoogleClientRequest; import com.google.api.client.http.HttpBackOffUnsuccessfulResponseHandler; import com.google.api.client.http.HttpRequest; import com.google.api.client.googleapis.auth.oauth2.GoogleCredential; import com.google.api.client.googleapis.javanet.GoogleNetHttpTransport; import com.google.api.client.http.HttpTransport; import com.google.api.client.json.jackson2.JacksonFactory; import com.google.api.client.util.ExponentialBackOff; import com.google.api.services.businessmessages.v1.Businessmessages; import com.google.api.services.businessmessages.v1.model.BusinessMessagesReceipt; import com.google.api.services.businessmessages.v1.model.*; import java.io.FileInputStream; import java.util.Arrays; import java.util.UUID; public class ReadReceiptSample { /** * Initializes credentials used by the Business Messages API. */ private static Businessmessages.Builder getBusinessMessagesBuilder() { Businessmessages.Builder builder = null; try { GoogleCredential credential = GoogleCredential .fromStream(new FileInputStream("PATH_TO_SERVICE_ACCOUNT_KEY")); credential = credential.createScoped(Arrays.asList( "https://www.googleapis.com/auth/businessmessages")); credential.refreshToken(); HttpTransport httpTransport = GoogleNetHttpTransport.newTrustedTransport(); JacksonFactory jsonFactory = JacksonFactory.getDefaultInstance(); // Create instance of the Business Messages API builder = new Businessmessages .Builder(httpTransport, jsonFactory, null) .setApplicationName("Sample Application"); // Set the API credentials and endpoint builder.setHttpRequestInitializer(credential); } catch (Exception e) { e.printStackTrace(); } return builder; } public static void main(String args[]) { try{ String conversationId = "CONVERSATION_ID"; String messageId = "MESSAGE_ID"; // Create client library reference Businessmessages.Builder builder = getBusinessMessagesBuilder(); // Create a new read receipt Businessmessages.Conversations.Messages.UpdateReceipt request = builder.build().conversations().messages() .updateReceipt("conversations/" + conversationId + "/messages/" + messageId + "/receipt", new BusinessMessagesReceipt().setReceiptType("READ")); // Set up retries with exponential backoff HttpRequest httpRequest = ((AbstractGoogleClientRequest) request).buildHttpRequest(); httpRequest.setUnsuccessfulResponseHandler(new HttpBackOffUnsuccessfulResponseHandler( new ExponentialBackOff())); // Execute request httpRequest.execute(); } catch (Exception e) { e.printStackTrace(); } } }Ten kod opiera się na Java Business Biblioteka klienta Wiadomości
Python
from oauth2client.service_account import ServiceAccountCredentials from businessmessages import businessmessages_v1_client as bm_client from businessmessages.businessmessages_v1_messages import ( BusinessMessagesReceipt) credentials = ServiceAccountCredentials.from_json_keyfile_name( 'PATH_TO_SERVICE_ACCOUNT_KEY', scopes=['https://www.googleapis.com/auth/businessmessages']) client = bm_client.BusinessmessagesV1(credentials=credentials) conversation_id = 'CONVERSATION_ID' message_id = 'MESSAGE_ID' read_receipt = BusinessMessagesReceipt( name=f"conversations/{conversation_id}/messages/{message_id}/receipt", receiptType=BusinessMessagesReceipt.ReceiptTypeValueValuesEnum.READ ) # Send the message bm_client.BusinessmessagesV1.ConversationsMessagesService( client=client).UpdateReceipt(request=read_receipt)Ten kod opiera się na Python Business Biblioteka klienta Wiadomości
Informacje o opcjach formatowania i wartości znajdziesz w
ReceiptType