Twilioで開発を始める前に知っておくこと（アカウント編）

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

# はじめに

みなさん、こんにちは。
Twilioエバンジェリストの高橋です。

今回は、これからTwilioを使う方（使い始めている方にも）に知っておいてほしい、**アカウント**について説明します。
アカウントの話はドキュメントにもあまり詳しく書いてないので、ぜひ参考にしてください。

# アカウントの種類

まず、Twilioアカウントは、次の2つの状態を持ちます。

- トライアルアカウント
- アップグレード済みアカウント

## トライアルアカウント

Twilioにサインアップをして作成されたアカウントは、すべてトライアルアカウントになります。
トライアルアカウントの作成には、メールアドレスと普段お使いの電話番号が必要です。サインアップの途中で、電話番号の認証が入りますが、１つの電話番号で作成できるトライアルアカウント数には制限があります。制限を超えると、同じ電話番号ではアカウントの開設ができませんのでご注意ください。
なお、アカウントの作成は、[こちら](https://twilio.kddi-web.com/signup/)から可能です。

トライアルアカウントには以下の制限事項があります。

- 利用できるポイントが限られており、ポイントがなくなった時点でアカウントはサスペンドします。
- 購入できる電話番号は１つだけです。リリースしても別の番号は購入できません。
- 電話発信、もしくはSMS送信できる先は、検証済み電話番号（通常はアカウント作成時に認証された電話番号、後から追加や変更が可能）のみで、それ以外の電話番号に対しては電話発信も、SMS送信もできません。
- １通話の最大時間は10分に制限されます。
- 購入した電話番号にはどの電話番号からも着信ができますが、着信時にトライアルアカウントである旨のガイダンスが流れ、なにかキーを押さないと先にすすまないようになっています。

ここで注意が必要なのは、**電話番号は１つしか買えない**という点です。
とくに、国内のユーザに対してSMSを送信したい場合は、TwilioのUS番号を購入する必要がありますので、注意してください。
また、アカウント作成直後のプロジェクトの選択で、**Twilio Flex**を選択した場合は、自動的にUSの番号が一つ購入されてしまいますので、日本の番号を追加で購入するためにはプロジェクトのアップグレードが必要になります。

# プロジェクト

サインアップが終わると、プロジェクトを作成してくださいという画面が出てきて戸惑う方もいらっしゃるかと思います。
ここでは、そもそもプロジェクトとはなにか、どのように使うものなのかについて説明します。

プロジェクトとは、皆さんが作業するスペースのことで、プロジェクトにはAPIを利用するための認証情報である**Account Sid**と**Auth Token**が設定されます。また、ポイント購入するための**支払い情報**がひも付きます。
通常、トライアルアカウントを作成したときに、１つプロジェクトが出来上がります。
ですので、多くの方が出来上がったプロジェクトで作業を始めると思いますが、**ちょっと待ってください。**

もちろん、出来上がったプロジェクト内でいきなり作業を始めてもよいのですが、今後複数の独立したシステムをTwilioで構築したり、ちょっとしたテストを実施したいと思ったときに、何も考えずにプロジェクト内で作業をしてしまうと、あとで混乱する原因になります。たとえば、あるシステムで使っていた電話番号を間違って消してしまったり、別のシステムで作成したFunctionを間違って修正してしまったり、事故がおこるだけでなく管理も煩雑になります。

## サブアカウントの利用

このような事故をなくすために、プロジェクトには複数のサブアカウントを作ることができます。サブアカウントは以下の手順で作ることができます（RestAPIでも作成できます）。

- 管理コンソールにログインします。
- 右上の歯車アイコンをクリックして、サブメニューから**Subaccounts**を選択します。
- **サブアカウントを作成する**という赤いボタンを押すか、赤いプラスアイコンを押します。
- **わかりやすい名前**に、サブアカウントの名前をつけます（日本語も使えます）。
![スクリーンショット 2019-03-04 14.28.42.png](https://qiita-image-store.s3.amazonaws.com/0/86046/a4305ab3-14b8-e5b4-8147-25783e23b2ca.png)

- サブアカウントが作成されると、作成されたサブアカウントの一覧が表示されますので、移動したいサブアカウントの右側にある**サブアカウントを表示**ボタンを押します。
- 左上のプロジェクト名の右側に、オレンジ色でサブアカウント名が表示されます。
![スクリーンショット 2019-03-04 14.30.11.png](https://qiita-image-store.s3.amazonaws.com/0/86046/b23cf453-47df-da13-a82d-f53ac4a35d98.png)

## サブアカウントとは

サブアカウントは、プロジェクトの中で完全に独立した作業スペースです。サブアカウントはいくつも作ることができますが、他のサブアカウントや親アカウント（プロジェクト）とも完全に独立しています。すなわち、サブアカウント内で購入した電話番号は、他のサブアカウントからは見えませんし、利用することもできません。電話番号だけでなく、サブアカウント内で作成されたものはすべて他のサブアカウントや親プロジェクトからもアクセスできません。
**API認証に利用するAccountSidとAuthTokenもサブアカウント単位で個別に付与されます。**

ただし、サブアカウントで発生したポイントは、親プロジェクトから引かれます。サブアカウント単位でポイントを購入することもできません。
*トライアルアカウントでもサブアカウントの作成は可能です。ただし、購入できる電話番号はプロジェクト全体で１つに限られます。*

このように、支払い情報はまとめておきつつ、複数のシステムを開発したり、テスト環境を作ったりするためにサブアカウントを活用するようにしてください。

# まとめ

- トライアルアカウントを作成すると、プロジェクトが１つ生成されます。
- プロジェクトには複数のサブアカウントを作成できます。
- サブアカウントは独立した作業スペースです。
- サブアカウントのポイントは親プロジェクトから引かれます。
- 別システムの構築したり、テスト環境をつくるためにサブアカウントを活用してください。

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

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