TwilioのAPIを使って電話番号を購入する手順

:::note alert
2023年5月1日を持ちまして、株式会社KDDIウェブコミュニケーションズのTwilioリセール事業が終了したため、本記事に記載されている内容は正確ではないことを予めご了承ください。
:::

# はじめに

みなさん、こんにちは。
KDDIウェブコミュニケーションズのTwilio事業部エバンジェリストの高橋です。

2019年11月19日に、既存のユーザ様にはご案内をお送りいたしましたが、11月20日以降、本人確認書類の提出ならびに電話番号と Identity SIDの紐付けが必須となり、この作業を行わないと**管理コンソールから日本を含む対象国の電話番号が購入できなくなりました**。

当該アナウンスについては、[こちら](https://twilio.kddi-web.com/phone-number_regulatory/)をご参照ください。また、対象国は[こちら](https://www.twilio.com/guidelines/regulatory)をご確認ください。

Identity SIDの取得方法（本人認証の設定方法）については、[こちらの記事](https://qiita.com/mobilebiz/items/9f9d3cbb11cf795325e9)をご覧ください。

本人確認書類の登録から書類が認証されるまでに最大2営業日かかるため、今回はすぐにでも番号を購入したい場合の方法について説明をします。

**<重要>**
APIを使った場合に、IdentitySIDがなくても購入できるのは、2020年1月14日までです。この日以降は、APIを使ってもIdentitySIDが必須になりますので、なるべく早めに対応をお願いいたします。

# 準備

今回の手順は、すでに以下の状態になっていることを前提とします。

- Twilioのアカウントを取得していること。
- Address SID（住所情報）の登録は済んでいること。
- [管理コンソール](https://jp.twilio.com/login/kddi-web/)に管理者としてログインできること。

住所情報を登録していない方は、まずは[こちらの記事](https://qiita.com/mobilebiz/items/abe1d32f4df9b5fe6ec8)を参考に住所情報を登録してください。

番号の購入に先立ち、以下の手順を実施してください。

## Address SIDを調べる

- [管理コンソール](https://jp.twilio.com/login/kddi-web/)にログインします。
- スライドメニューから、PhoneNumbers（電話番号）、もしくはシャープのアイコンを選択します。
- **電話番号**のサブメニュー**Regulatory Compliance**の中の**住所**を選択します。
- すでに登録済みの住所を選択します。
- 表示されるURLの**ADから始める文字列**をコピーし、メモ帳に控えます。

![AddressSidの確認.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/86046/1b04cca8-8ce2-f917-1454-921d1ee7f778.png)

## 購入したい電話番号を調べる

- 同じく**電話番号**のサブメニュー**番号を購入**を選択します。
- **COUNTRY**から欲しい番号の国を選択します。
- **検索**を押します。

![番号を購入.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/86046/1b0b92db-6b1d-e158-d600-1437cfcbf4f0.png)

- 現時点で購入できる番号の一覧が表示されます。
- 表示されたリストの中から、欲しい番号を控えます（例:+81503XXXXXXX）。

以上で準備は終了です。

# cURLコマンドを使って番号を購入する

Macユーザであれば、標準でcURLコマンドが入っているので、こちらを使ってAPI経由で購入するのが一番早いです。
WindowsユーザでもcURLコマンドが使える場合は、この手順で購入できます。もしcURLコマンドが入っていない場合は、このあとの手順（API Explorerを使って購入する）を参考にしてください。

## AccountSidとAuthTokenを調べる

- 管理コンソールにログインし、**Dashboard**画面を開きます。
- 右側に表示されている**アカウントSID**（ACから始まる文字列）をコピーして、メモ帳などに控えます。
- その下の**AUTHTOKEN**のViewをクリックし、文字列を表示させてから、こちらも同様にメモ帳などに控えます。

![AccountSid&AuthToken.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/86046/ab2ae903-9c15-4a8c-8132-d41c3707d45f.png)

## cURLコマンドを実行する

- メモ帳などを使って、以下のコマンドをコピーします。

```sh
curl 'https://api.twilio.com/2010-04-01/Accounts/ACxxxxxxxxxxxxxxxxxxx/IncomingPhoneNumbers.json' -X POST \
--data-urlencode 'PhoneNumber=+81503XXXXXXX' \
--data-urlencode 'AddressSid=ADXXXXXXXXXXXXXXXXXXXXX' \
-u ACxxxxxxxxxxxxxxxxxxx:xxxxxxxxxxxxxxxxxxxxxxx
```

- 最初のACxxxxxxxxxxxxxxxxと、最後のACxxxxxxxxxxxxxxxxは、先ほど控えておいたアカウントSID（ACから始まる文字列）に置き換えます。
- PhoneNumberのところは、購入した電話番号（+8150〜）に置き換えます（空白はいれないでください）。
- AddressSidには、控えておいたAddressSID（ADから始まる文字列）に置き換えます。
- 最後の行の:から後ろの部分を、AuthTokenに置き換えます（コロンは消さないように注意してください）。
- コマンドプロンプトを開いて、置き換えた文字列を貼り付けて実行します。
- **{"sid": "PN〜**から始まるjsonファイルが戻ってくれば購入成功です。

# API Explorerを使って購入する

- [管理コンソール](https://jp.twilio.com/login/kddi-web/)にログインします。
- スライドメニューから、**API Explorer**を選択します。

![APIExplorer.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/86046/b240f620-91e3-c150-dd1a-24740922019e.png)

- **Incoming Phone Numbers**をプルダウンします。
- **POST /Accounts/[AccountSid]/IncomingPhoneNumbers**を選択します（POSTが複数あるので、間違えないようにしてください）。
- **PHONE NUMBER**に、先程控えておいた購入したい電話番号を記入します（空白は削除してください）。

![CreateAnIncomingPhoneNumber.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/86046/f8b60557-083b-40e0-104e-70cb506aa3fd.png)

- 画面を下にスクロールして、**ADDRESS SID**に、先ほど控えておいたAddressSid（ADから始まる文字列）を指定します。
- **Make Request**ボタンを押します。

![CreateAnIncomingPhoneNumber_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/86046/076cdc87-ca9b-385f-4513-cab1c6b278e5.png)

- **Response**ウィンドウに以下のように表示されれば購入成功です。

![Response.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/86046/08c3d38f-d339-fea2-559e-52c881aee3b7.png)

# まとめ

冒頭にも書きましたが、APIを使った場合にIdentitySIDがなくても購入できるのは、2020年1月14日までです。この日以降は、APIを使ってもIdentitySIDが必須になりますので、なるべく早めに対応をお願いいたします。

---
### Twilio（トゥイリオ）とは

https://twilio.kddi-web.com
Twilioは音声通話、メッセージング（SMS/チャット）、ビデオなどの 様々なコミュニケーション手段をアプリケーションやビジネスへ容易に組み込むことのできるクラウドAPIサービスです。初期費用不要な従量課金制で、各種開発言語に対応しているため、多くのハッカソンイベントやスタートアップなどにも、ご利用いただいております。