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

Ваш агент может отозвать отправленное, но ещё не доставленное сообщение. Лучше всего отзывать неотправленные сообщения до того, как они устареют. Сроки зависят от сценария использования агентом. Например, вы можете отозвать сообщение с одноразовым паролем через десять минут, а рекламное сообщение — по истечении определённого срока. Для своевременной доставки сообщений обязательно отзывайте сообщения вовремя, чтобы иметь возможность отправить их альтернативным способом, например, через 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 .

Ява

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 .

Питон

# 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 .

С#

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 .