Ваш агент может отозвать сообщение, которое было отправлено, но еще не доставлено. Лучше всего отзывать недоставленные сообщения до того, как они устареют. Время зависит от варианта использования вашего агента. Например, вы можете отозвать одноразовое сообщение через десять минут, но отозвать рекламное сообщение в определенный срок действия. Для своевременной доставки сообщений обязательно вовремя отзывайте сообщения, чтобы можно было отправить их альтернативным маршрутом, например SMS.
Отозвать сообщение можно двумя способами:
Отправьте запрос на отзыв, чтобы инициировать отзыв. Когда платформа RBM получает запрос на отзыв, она возвращает 200 OK. Ответ 200 OK не подтверждает, было ли сообщение отозвано. Если отзыв прошел успешно, платформа RBM прекращает попытки доставить сообщение, и оно удаляется из очереди пользователя.
Установите срок действия сообщения , чтобы автоматически отозвать сообщение в подходящее время. Платформа RBM уведомляет вашего агента об истечении срока действия сообщения и подтверждает, было ли оно успешно отозвано. Дополнительные сведения см. в разделе События, генерируемые сервером .
В редких случаях отзыв может не удаться. Например, ваш агент может попытаться отозвать сообщение, пока платформа RBM находится в процессе его доставки. Если отзыв не удался, проверьте наличие события DELIVERED
в своем веб-перехватчике. Если сообщение не было доставлено, вы можете отправить новый запрос на отзыв , а затем направить сообщение на альтернативный канал, например SMS, чтобы обеспечить своевременную доставку.
Пример
Следующий код отправляет запрос на отзыв. Информацию о форматировании и значениях см. в разделе phones.agentMessages.delete
.
КУЛЬ
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); });
Ява
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(); }
Питон
# 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)
С#
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");