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