Twilio バンドル申請の Draft を API で削除する方法

Twilio バンドル申請の Draft を API で削除する方法

Twilio の電話番号規制対応で作成したバンドル申請の Draft を削除したい場合、 Console UI では対応できないため REST API を使用する必要があります。本記事では curl 、 Node.js 、 Python を使った削除手順について解説します。

はじめに

Twilio の電話番号規制対応において、バンドル申請の作成後 Draft を削除したいケースがあります。Twilio Console の UI では Draft を削除する機能が提供されていないため、 REST API を使用してリソースを削除する必要があります。本記事では、 API を使用して Draft 状態のバンドル申請を削除する手順を説明します。

参考

API を使用した削除手順

Draft 状態のバンドルを削除するには、 Twilio REST API の DELETE メソッドを使用します。

前提条件

  • Twilio Account SID と Auth Token が必要です
  • 削除対象のバンドル SID を事前に確認しておく必要があります
    バンドル SID
  • バンドルが draft 状態である必要があります ( pending-reviewapproved 状態では削除できません )

削除コマンド例

curl 編

BUNDLE_SID, ACCOUNT_SID, AUTH_TOKEN は適宜置き換えてください。

curl -X DELETE "https://numbers.twilio.com/v2/RegulatoryCompliance/Bundles/BUNDLE_SID" -u "ACCOUNT_SID:AUTH_TOKEN"

Node.js 編

const twilio = require('twilio');
const client = twilio('ACCOUNT_SID', 'AUTH_TOKEN');

client.numbers.v2.regulatoryCompliance
  .bundles('BUNDLE_SID')
  .remove()
  .then(() => console.log('Bundle deleted successfully'))
  .catch(error => console.error('Error:', error));

実行結果

# 成功時
Bundle deleted successfully

# 失敗時の例
Error: RestException [Error]: The requested resource /v2/RegulatoryCompliance/Bundles/BUNDLE_SID was not found
    at success (/home/koshiitakumi/work/delete-bundle-test/node_modules/twilio/lib/base/Version.js:154:23)
    at process.processTicksAndRejections (node:internal/process/task_queues:105:5) {
  status: 404,
  code: 20404,
  moreInfo: 'https://www.twilio.com/docs/errors/20404',
  details: undefined
}

Python 編

from twilio.rest import Client

client = Client('ACCOUNT_SID', 'AUTH_TOKEN')

client.numbers.v2.regulatory_compliance \
    .bundles('BUNDLE_SID') \
    .delete()

print('Bundle deleted successfully')

出力結果

# 成功時
Bundle deleted successfully

# 失敗時の例
C:\work\delete-bundle-test-python\.venv\Scripts\python.exe C:\work\delete-bundle-test-python\main.py 
Traceback (most recent call last):
  File "C:\work\delete-bundle-test-python\main.py", line 7, in <module>
    .delete()
     ^^^^^^^^
  File "C:\work\delete-bundle-test-python\.venv\Lib\site-packages\twilio\rest\numbers\v2\regulatory_compliance\bundle\__init__.py", line 272, in delete
    return self._version.delete(method="DELETE", uri=self._uri, headers=headers)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\work\delete-bundle-test-python\.venv\Lib\site-packages\twilio\base\version.py", line 266, in delete
    return self._parse_delete(method, uri, response)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\work\delete-bundle-test-python\.venv\Lib\site-packages\twilio\base\version.py", line 237, in _parse_delete
    raise self.exception(method, uri, response, "Unable to delete record")
twilio.base.exceptions.TwilioRestException: HTTP 404 error: Unable to delete record: The requested resource /v2/RegulatoryCompliance/Bundles/BUNDLE_SID was not found

まとめ

Twilio バンドル申請の Draft 削除は Console UI では対応できないため、 REST API を使用する必要があります。削除は DELETE メソッドで簡単に実行できますが、事前にバンドル SID の確認と Draft 状態であることの確認が重要です。

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.