ใบตอบรับข้อความจะแจ้งผู้ส่งว่าได้รับข้อความแล้ว หรือ อ่านแล้ว เมื่อใช้ใบตอบรับ ผู้ใช้สามารถมองเห็นได้เมื่อตัวแทนอ่านข้อความแล้ว พวกเขารู้ว่าจะได้รับคำตอบ Agent ยังระบุได้ด้วยว่าผู้ใช้จะได้รับ และอ่านข้อความ เพื่อให้ติดตามเมตริกใบเสร็จเพื่อให้โต้ตอบได้ดียิ่งขึ้น รูปแบบต่างๆ
ตัวแทนจะได้รับใบเสร็จที่เว็บฮุค รับและประมวลผลใบเสร็จในลักษณะเดียวกัน วิธีที่คุณได้รับ ข้อความ
หากผู้ใช้ส่งใบตอบรับหลายใบในคราวเดียว ด้วยการรับหรืออ่านหลายใบ ในเวลาเดียวกัน เพย์โหลด 1 รายการจะประกอบด้วยใบรับข้อความทั้งหมด ตรวจสอบใบเสร็จแต่ละใบเพื่อดูข้อความที่เกี่ยวข้อง
ประเภทใบเสร็จ
Business Messages รองรับใบตอบรับการส่งและใบตอบรับการอ่าน
ใบเสร็จจากผู้ใช้
ตัวแทนจะรับใบเสร็จต่อไปนี้จากผู้ใช้ได้
- ใบตอบรับการส่ง (
DELIVERED
) ระบุว่าผู้ใช้ได้รับข้อความแล้ว จากตัวแทน - ใบตอบรับการอ่าน (
READ
) ระบุว่าผู้ใช้อ่านข้อความจากตัวแทนแล้ว
ผู้ใช้สามารถเลือกที่จะไม่ส่งใบตอบรับการอ่านได้ หากเลือกไม่รับ ผู้ใช้จะยังได้รับ ใบตอบรับการอ่านจากตัวแทน
ใบเสร็จจากตัวแทน
ผู้ใช้สามารถรับใบตอบรับการอ่านจากตัวแทนได้
ใบตอบรับการอ่าน (READ
) ระบุว่าตัวแทนอ่านข้อความจากผู้ใช้แล้ว
หากมีตัวแทนแบบเรียลไทม์มากกว่า 1 คนกำลังจัดการการสนทนาอยู่ ใบตอบรับการอ่าน
หมายความว่าตัวแทนอย่างน้อย 1 รายอ่านข้อความของผู้ใช้
รูปแบบ
ใบเสร็จจากผู้ใช้
ใบตอบรับการส่งจากผู้ใช้มีรูปแบบดังต่อไปนี้
{ "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", }, }
ใบตอบรับการอ่านจากผู้ใช้จะมีรูปแบบดังต่อไปนี้
{ "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", }, }
สำหรับตัวเลือกการจัดรูปแบบและค่า โปรดดู
UserMessage
และ
Receipts
ใบเสร็จจากตัวแทน
รหัสต่อไปนี้จะส่งใบตอบรับการอ่านจากตัวแทน
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');โค้ดนี้อิงตาม Node.js ไลบรารีของไคลเอ็นต์ 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(); } } }โค้ดนี้อิงตาม ธุรกิจ Java ไลบรารีของไคลเอ็นต์ Messages
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)โค้ดนี้อิงตาม ธุรกิจ Python ไลบรารีของไคลเอ็นต์ Messages
สำหรับตัวเลือกการจัดรูปแบบและค่า โปรดดู
ReceiptType