메시지 수신 확인은 발신자에게 메시지가 수신되었음을 알려줍니다. 있습니다. 사용자는 수신 확인을 통해 상담사가 메시지를 읽었는지 확인할 수 있으므로 응답을 예상할 수 있습니다 에이전트는 사용자가 수신 확인 측정항목을 추적하여 고객과의 상호작용을 개선할 수 있습니다 있습니다.
상담사는 웹훅에서 영수증을 수신합니다. 동일한 방식으로 영수증을 수신하고 처리 받는 방법 메시지를 참조하세요.
사용자가 여러 개의 영수증을 수신하거나 읽어 한 번에 여러 개의 영수증을 보내는 경우 동시에 하나의 페이로드에 모든 메시지 수신 확인이 포함됩니다. 각 영수증에서 연결된 메일을 확인합니다.
영수증 유형
Business Messages는 전송 확인과 수신 확인을 지원합니다.
사용자로부터 받은 영수증
상담사는 사용자로부터 다음과 같은 영수증을 받을 수 있습니다.
- 전송 확인 (
DELIVERED
)은 사용자가 메시지를 받았음을 나타냅니다. 있습니다. - 수신 확인 (
READ
)은 사용자가 에이전트의 메시지를 읽었음을 나타냅니다.
사용자는 수신 확인을 전송하지 않도록 선택할 수 있습니다. 수신 거부해도 상담사의 수신 확인
대행사 영수증
사용자는 상담사로부터 수신 확인을 받을 수 있습니다.
수신 확인 (READ
)은 상담사가 사용자의 메시지를 읽었음을 나타냅니다.
2명 이상의 실제 상담사가 대화를 관리하는 경우 수신 확인
하나 이상의 상담사가 사용자의 메시지를 읽었음을 의미합니다.
형식
사용자로부터 받은 영수증
사용자의 전송 확인 형식은 다음과 같습니다.
{
"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 -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"
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 ');
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();
}
}
}
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)
형식 지정 및 값 옵션은 다음을 참고하세요.
ReceiptType