Отзыв сообщений

Ваш агент может отозвать сообщение, которое было отправлено, но еще не доставлено. Лучше всего отзывать недоставленные сообщения до того, как они устареют. Время отзыва зависит от конкретного случая использования вашего агента. Например, вы можете отозвать сообщение с одноразовым паролем через десять минут, но отозвать рекламное сообщение в определенный день истечения срока действия. Для своевременной доставки сообщений обязательно отзывайте сообщения вовремя, чтобы вы могли отправить их альтернативным способом, например, SMS.

Существует два способа отозвать сообщение:

  • Для инициирования отзыва отправьте запрос на аннулирование. Ответ 200 OK подтверждает, что сообщение было аннулировано и удалено из очереди пользователя. Ответ 404 Not Found означает, что попытка аннулирования не удалась, поскольку сообщение было доставлено.

  • Установите срок действия сообщения , чтобы оно автоматически отзывалось в соответствующее время. Платформа RBM уведомляет вашего агента о истечении срока действия сообщения и подтверждает, было ли оно успешно отозвано. Дополнительную информацию см. в разделе «События, генерируемые сервером» .

В редких случаях отзыв сообщения может завершиться неудачей. Например, ваш агент может попытаться отозвать сообщение, пока платформа RBM находится в процессе его доставки. Если отзыв не удался, проверьте наличие события DELIVERED в вашем веб-хуке. Если сообщение не было доставлено, вы можете отправить новый запрос на отзыв , а затем перенаправить сообщение по альтернативному каналу, например, SMS, для своевременной доставки.

Пример

Следующий код отправляет запрос на аннулирование. Информацию о форматировании и значениях см. в файле phones.agentMessages.delete .

cURL

curl -X DELETE "https://REGION-rcsbusinessmessaging.googleapis.com/v1/phones/PHONE_NUMBER/agentMessages/MESSAGE_ID?agentId=AGENT_ID" \
-H "Content-Type: application/json" \
-H "User-Agent: curl/rcs-business-messaging" \
-H "`oauth2l header --json PATH_TO_SERVICE_ACCOUNT_KEY rcsbusinessmessaging`"

Node.js

// Reference to RBM API helper
const rbmApiHelper = require('@google/rcsbusinessmessaging');

// Stop the message associated with messageId from being delivered
rbmApiHelper.revokeMessage('+12223334444', messageId, function(err, response) {
   console.log(response);
});
Этот код представляет собой фрагмент примера агента RBM .

Java

import com.google.rbm.RbmApiHelper;


try {
   // Create an instance of the RBM API helper
   RbmApiHelper rbmApiHelper = new RbmApiHelper();

   // Stop the message associated with messageId from being delivered
   rbmApiHelper.revokeMessage(messageId, "+12223334444");
} catch(Exception e) {
   e.printStackTrace();
}
Этот код представляет собой фрагмент примера агента RBM .

Python

# Reference to RBM Python client helper and messaging object structure
from rcs_business_messaging import rbm_service

# Stop the message associated with message_id from being delivered
rbm_service.revoke('+12223334444', message_id)
Этот код представляет собой фрагмент примера агента RBM .

C#

using RCSBusinessMessaging;


// Create an instance of the RBM API helper
RbmApiHelper rbmApiHelper = new RbmApiHelper(credentialsFileLocation,
                                                 projectId);

// Stop the message associated with messageId from being delivered
rbmApiHelper.RevokeMessage(messageId, "+12223334444");
Этот код представляет собой фрагмент примера агента RBM .