エージェントは、送信済みでまだ配信されていないメッセージを取り消すことができます。未配信メッセージは、最新ではなくなる前に取り消すことをおすすめします。タイミングはエージェントのユースケースによって異なります。たとえば、10 分後に OTP メッセージを取り消して、特定の有効期限にプロモーション メッセージを取り消すことができます。メッセージをタイムリーに配信するには、SMS などの代替ルートで送信できるように、期日までにメッセージを取り消してください。
メッセージを取り消す方法は 2 つあります。
取り消しリクエストを送信して取り消しをトリガーします。RBM プラットフォームが取り消しリクエストを受け取ると、プラットフォームは 200 OK を返します。200 OK レスポンスでは、メッセージが取り消されたかどうかは確認できません。取り消しに成功すると、RBM プラットフォームはメッセージの配信の試行を停止し、ユーザーのキューから削除されます。
メッセージの有効期限を設定して、適切なタイミングでメッセージを自動的に取り消す。メッセージの有効期限が切れると、RBM プラットフォームはエージェントに通知し、正常に取り消されたかどうかを確認します。詳しくは、サーバー生成イベントをご覧ください。
まれに、取り消しが失敗することがあります。たとえば、RBM プラットフォームがメッセージの配信中に、エージェントがメッセージを取り消そうとする場合があります。取り消しが失敗した場合は、Webhook で DELIVERED
イベントを確認します。メッセージが配信されていない場合は、新しい取り消しリクエストを送信し、タイムリーに配信されるようにメッセージを SMS などの代替チャネルにルーティングできます。
例
次のコードは、取り消しリクエストを送信します。形式と値の詳細については、phones.agentMessages.delete
をご覧ください。
cURL
curl -X DELETE "https://REGION-rcsbusinessmessaging.googleapis.com/v1/phones/PHONE_NUMBER/agentMessages/MESSAGE_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('../libs/rbm_api_helper'); // 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.samples.lib.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 サンプル エージェントからの抜粋です。