मैसेज की रसीद से, भेजने वाले को पता चलता है कि उनके मैसेज मिल गए हैं या पढ़ें. रसीदों की मदद से, लोग यह देख सकते हैं कि एजेंट ने उनके मैसेज पढ़े हैं. इसलिए तो वे जानते हैं कि उनका जवाब सही है. आपका एजेंट यह भी तय कर सकता है कि लोगों को कब पेमेंट मिले और मैसेज पढ़ सकते हैं, ताकि आप बेहतर इंटरैक्शन के लिए रसीद की मेट्रिक ट्रैक कर सकें डिज़ाइन.
एजेंट को उनके वेबहुक पर रसीदें मिलती हैं. रसीदें एक ही तरह से पाएं और प्रोसेस करें कैसे मिलता-जुलता है मैसेज.
अगर कोई उपयोगकर्ता एक से ज़्यादा रसीदें भेजकर या पढ़कर, एक साथ कई रसीदें भेजता है एक पेलोड में सभी मैसेज की रसीदें शामिल होती हैं. हर रसीद की जांच करके देखें कि वह मैसेज किस रसीद से जुड़ा है.
रसीद के टाइप
Business Messages में, डिलीवरी और मैसेज पढ़े जाने की जानकारी दी जा सकती है.
उपयोगकर्ताओं से मिली रसीदें
एजेंट को उपयोगकर्ताओं से ये रसीदें मिल सकती हैं:
- डिलीवरी की रसीदों (
DELIVERED
) से पता चलता है कि उपयोगकर्ता को कोई मैसेज मिला है एजेंट से बात की है. - मैसेज पढ़े जाने की सूचना (
READ
) से पता चलता है कि उपयोगकर्ता ने एजेंट का मैसेज पढ़ा है.
उपयोगकर्ता, मैसेज पढ़े जाने की सूचनाएं भेजने की सुविधा से ऑप्ट आउट कर सकते हैं. अगर वे ऑप्ट आउट करते हैं, तब भी उन्हें एजेंट से रसीद पढ़ें.
एजेंट से मिली रसीदें
उपयोगकर्ता, एजेंट से मैसेज पढ़े जाने की सूचनाएं पा सकते हैं.
मैसेज पढ़े जाने की सूचना (READ
) से पता चलता है कि एजेंट ने उपयोगकर्ता का मैसेज पढ़ लिया है.
अगर एक से ज़्यादा लाइव एजेंट बातचीत को मैनेज कर रहे हैं, तो मैसेज पढ़े जाने की सूचना
इसका मतलब है कि कम से कम एक एजेंट ने उपयोगकर्ता का मैसेज पढ़ा है.
फ़ॉर्मैट
उपयोगकर्ताओं से मिली रसीदें
उपयोगकर्ताओं से मिलने वाली डिलीवरी की रसीदों का फ़ॉर्मैट इस तरह है:
{
"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
.