メッセージを取り消す

エージェントは、送信済みだがまだ配信されていないメッセージを取り消すことができます。配信されなかったメッセージは、期限切れになる前に取り消すことをおすすめします。タイミングは、エージェントのユースケースによって異なります。たとえば、OTP メッセージを 10 分後に取り消す一方で、プロモーション メッセージを特定の有効期限日に取り消すことができます。メッセージをタイムリーに配信するには、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?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 サンプル エージェントからの抜粋です。

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();
}
このコードは、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 サンプル エージェントからの抜粋です。