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