CPaaSってなに？VonageとTwilioの具体例で理解するコミュニケーションAPIことはじめ

[最新CPaaSコミュニケーションAPIを比べる or 使ってみよう！ 【PR】Vonage Japan](https://qiita.com/advent-calendar/2021/vonage2021)の9日目を担当する仁科（<a href="https://twitter.com/nishina555" target="_blank" rel="noopener">@nishina555</a>）と申します。

多種多様なデバイスの登場によりCPaaSの注目度はより一層高まっています。
しかし、**ひとことでCPaaSといってもその領域は多岐に渡るため、初学者にとっては難しく感じる分野かもしれません。**
特に開発者の場合はCPaaSの概要だけでなく、CPaaSから提供されるコミュニケーションAPIの利用方法も理解する必要があります。

そこで今回は**CPaaS・コミュニケーションAPIの概要と、VonageとTwilioを例にした具体的なコミュニケーションAPIの利用方法について紹介**します。
あわせて、**Vonage APIを利用した開発のTipsについても紹介**します。

:::note warn
本記事は2021年12月現在の情報をもとに執筆しています。
本記事で紹介しているVonageは2021年11月にEricsson（エリクソン）に買収されたため、Vonage APIのリンク等は今後変わる可能性があるのでご注意ください。
:::

## 以下のような人にオススメな記事です

- CPaaSの概要を理解したい人
- コミュニケーションAPIの全体像を理解したい人
- コミュニケーションAPIの具体的な実装例について知りたい人
- VonageとTwilioの違いを知りたい人
- Vonage APIについて理解を深めたい人

## 今回のゴール

今回の記事は**CPaaS・コミュニケーションAPIの概要を理解し、具体的なAPI（VonageとTwilio）の使い方を理解する**をゴールとします。

## CPaaSについて
**CPaaSとはCommunications Platform as a Serviceの略で、コミュニケーション分野で必要となる音声通話や動画、メッセージといった主に通信機能を提供するクラウドサービスのこと**をいいます。

CPaaSを活用することで、通信機能をゼロから自社開発せずともコミュニケーションツールと自社サービスの連携が可能になります。

## CPaaSのメリット
CPaaSを活用するメリットは以下の通りです。 [^naileone-com-service] [^top-cpaas-companies] [^2021-06-14-7018]

- 金銭面や工数面の導入コストが低い
- コミュニケーション機能を開発しなくてよいため、自社サービスの開発に集中できる
- セキュリティ面の安全性が担保されている
- 多種多様なコミュニケーションツールに対応できる
- カスタマイズが容易

## CPaaSの具体例について

CPaaSの活用事例は以下の通りです。[^naileone-com-service] [^enterprise-cpaas] [^2021-06-14-7018]

- 自動対応・転送などの機能が備わったコールセンターの構築
- システム障害時の自動検知および通知
- 不在時や来客時の呼び出し機能
- 会議室等の自動予約システム

[^naileone-com-service]: [リアルタイムメッセージング、音声、ビデオアプリケーションを迅速に構築するためのプラットフォームCPaaS](https://www.naileone.com/service/)

[^enterprise-cpaas]: [【技術解説】CPaaS（Communications Platform as a Service）](https://www.nextgen.co.jp/solution/case/enterprise/cpaas.html)

[^2021-06-14-7018]: [CPaaSとは？コールセンター強化に欠かせないクラウドサービス](https://biztel.jp/blog/2021/06/14/7018/)


## コミュニケーションAPIについて
**コミュニケーションAPIとはCPaaSから提供されるAPIの総称**です。
CPaaSが提供するコミュニケーション機能、つまり通信に関する機能はコミュニケーションAPIを介して利用されます。
**コミュニケーションAPIのおかげでCPaaS利用者はゼロから通信機能の実装せずとも、通信プラットフォームを構築できます。**


## コミュニケーションAPIのカテゴリについて
コミュニケーションAPIはデバイスやチャネル、目的によって細分化されます。

コミュニケーション分野は多岐にわたり全てを紹介するのが難しいため、今回は**コミュニケーションAPIの中でも利用頻度の高い基礎的な以下のカテゴリについて紹介**します。なお今回のカテゴライズはあくまで一例です。

- 音声系API
- 動画系API
- メッセージ系API
- 認証系API

### 音声系API
音声系APIは音声に関するAPIです。Voice APIなどと呼ばれているAPIがこの類のAPIに該当します。
音声系APIを利用することで音声通話の発信や着信への応答、IVR（Interactive Voice Response）と呼ばれる自動音声応答システムなどの音声に関するコミュニケーションツールが構築できます。[^communications-apis-voice] [^docs-voice]

[^communications-apis-voice]: [Voice API](https://www.vonagebusiness.jp/communications-apis/voice/)
[^docs-voice]: [Programmable Voice](https://www.twilio.com/ja/docs/voice)

音声系APIの具体的な活用イメージをつかむためには以下の記事が参考になります。

https://qiita.com/Tommyyyyyyy/items/99e70cd7e7d048f97ed1

https://qiita.com/cilto/items/9f8f3c886799e593c75d

### 動画系API
動画系APIは動画に関するAPIです。Video APIなどと呼ばれているAPIがこの類のAPIに該当します。
動画系APIを利用することでビデオチャットをはじめとした動画を利用したコミュニケーションツールが構築できます。[^communications-apis-video] [^docs-video]

[^communications-apis-video]: [ビデオAPI](https://www.vonagebusiness.jp/communications-apis/video/)
[^docs-video]: [Twilio Video](https://www.twilio.com/ja/docs/video)

動画系APIの具体的な活用イメージをつかむためには以下の記事が参考になります。

https://qiita.com/mmiyazawa7/items/38fb97240f897fafad37

https://qiita.com/hand12/items/7250ca58105a28a98dec

https://qiita.com/miya-start/items/8076d95ea8ff8597946f

### メッセージ系API
メッセージ系APIはテキストメッセージに関するAPIです。Message APIなどと呼ばれるAPIがこの類のAPIに該当します。
CPaaSによっては例えば[SMS API](https://www.vonagebusiness.jp/communications-apis/sms/)や[Facebook Messanger API](https://www.vonagebusiness.jp/communications-apis/messages/features/facebook-messenger/)のようにチャネルごとでメッセージ系APIが細分化される場合もあります。
メッセージ系API利用することでSMSやMMSの構築をはじめ、Facebook MessangerやWahts APPといったチャットアプリとの統合が可能になります。[^communications-apis-messages] [^messaging-api]

[^communications-apis-messages]: [Messages API](https://www.vonagebusiness.jp/communications-apis/messages/)
[^messaging-api]: [Programmable Messaging API](https://www.twilio.com/ja/messaging-api)

### 認証系API
認証系APIは認証に関するAPIです。Verify APIなどと呼ばれているAPIがこの類のAPIに該当します。
認証系APIを利用することで二要素認証（2FA, two-factor authenticaiton）と呼ばれるデバイスを利用した本人確認のプロセスをサービスに組み込めます。
認証系APIは自社サービスのセキュリティの強化やbot・いたずらによるユーザー登録の防止をしたい場合に活躍するAPIです。

## 人気の高いCPaaS企業の具体例
コミュニケーションAPIを提供する企業は多数存在するため、ネットにはCPaaS企業の比較記事が多く存在します。

複数の比較情報をもとに選出したCPaaS市場で有名な企業は以下の通りです。[^55935a3ef1135c36213d] [^communications-platform-as-a-service-cpaas] [^getvoip-cpaas] [^communications-platform-as-a-service] [^cloud-communication-platforms] [^top-cpaas-companies] [^the-top-cpaas-providers-of-2021]

[^55935a3ef1135c36213d]: [人気のコミュニケーションAPIをまとめてみた](https://qiita.com/cnakano/items/55935a3ef1135c36213d)
[^communications-platform-as-a-service-cpaas]: [Communications Platform as a Service (CPaaS)](https://www.trustradius.com/communications-platform-as-a-service-cpaas)
[^getvoip-cpaas]: [The Best CPaaS Providers in 2021](https://getvoip.com/cpaas/)
[^communications-platform-as-a-service]: [Communications Platform as a Service (cPaaS) Reviews and Ratings](https://www.gartner.com/reviews/market/communications-platform-as-a-service)

[^cloud-communication-platforms]: [Best Cloud Communication Platforms](https://www.g2.com/categories/cloud-communication-platforms)


[^top-cpaas-companies]: [Top 10 Communications Platform as a Service Companies in 2020](https://www.toolbox.com/collaboration/cpaas/articles/top-cpaas-companies/)

[^the-top-cpaas-providers-of-2021]: [The Top CPaaS Providers of 2021](https://www.uctoday.com/unified-communications/cpaas/the-top-cpaas-providers-of-2021/)

- [Vonage](https://www.vonagebusiness.jp/)
- [Twilio](https://www.twilio.com/ja/)
- [MessageBird](https://www.messagebird.com/en/)
- [Plivo](https://www.plivo.com/)
- [Bandwidth](https://www.bandwidth.com/)
- [Infobip](https://www.infobip.com/)
- [Telnyx](https://telnyx.com/)

上記のうち、日本でも人気の高いVonageとTwilioについて補足説明をします。

### Vonage（ボネージ）
[Vonage（ボネージ）](https://www.vonagebusiness.jp/)は2001年に設立されたアメリカの企業です。もともとはIP電話サービス事業をメインに行う通信業界の企業でしたが、CPaaS企業のNexmoやWebRTC機能を提供するTokBoxなどを買収することで今ではCPaaS市場で有名な企業の1社となっています。

Vonageの公式ドキュメントに`nexmo`や`tokbox`の文字が散見されたり、Video APIを利用する場合は別途アカウント作成が必要になったりするのは企業買収が行われた歴史的背景によるものです。
[VonageのコミュケーションAPI全般のアカウント作成フォーム](https://dashboard.nexmo.com/sign-up)には`Nexmo is now Vonage`の文章が、[Video APIのアカウント作成フォーム](https://tokbox.com/account/user/signup)には`TokBox is now Vonage`の文章が記載されていることからも、Video APIはTokBoxで開発されていたことがわかります。
ネットでNexmoに関する記事をみたらVonageのコミュニケーションAPIのことを、TokBoxに関する記事をみたらVonageのVideo APIのことを説明していると思って差し支えありません。

2017年4月にはVonage Japan 合同会社が設立されており、日本でも人気のCPaaS企業となっています。

そんなVonageですが、2021年11月にエリクソンによって買収されることになりました。[^ericsson-acquire-vonage-usd-62-billion-spearhead-creation-global]
VonageのコミュニケーションAPIの今後について引き続き注目をしていきたいです。

[^ericsson-acquire-vonage-usd-62-billion-spearhead-creation-global]: [Ericsson to acquire Vonage for USD 6.2 billion to spearhead the creation of a global network and communication platform for open innovation](https://ir.vonage.com/news-releases/news-release-details/ericsson-acquire-vonage-usd-62-billion-spearhead-creation-global)

Vonageから提供されている主なコミュニケーションAPIは以下の通りです。[^vonagebusiness-communications-apis]

- Video
- Message
- SMS
- Voice
- アプリ内音声
- SIPトランキング
- アプリ内メッセージング
- Conversation
- Eメール
- Dispatch
- Verify
- Number Insight

[^vonagebusiness-communications-apis]: [Vonage コミュニケーション API](https://www.vonagebusiness.jp/communications-apis/apis/)

### Twilio（トゥイリオ）

[Twilio（トゥイリオ）](https://www.twilio.com/ja/products)は2008年に設立されたアメリカの企業で、CPaaS市場でもっとも有名な企業の1つです。
CPaaSの選定で困ったらTwilioを選んでおけば間違いないといっても過言ではありません。
Twilioは開発者向けドキュメントの充実度や読みやすさに定評があることでも有名です。

Twilioで提供されるサービスはコミュニケーションAPIのほか、UIベースで顧客とやりとりをするコールセンタープラットフォーム「Twilio Flex」、コールフロー構築プラットフォーム「Twilio Studio」、ゲームチュートリアル「Twilio Quest」など多岐に渡ります。
また、2018年10月にはメール配信プラットフォームで有名なSendGridを買収をしており、充実したメール機能もTwilioから提供されています。

Twilioの日本展開は2013年4月にKDDIウェブコミュニケーションズによって開始され、現在ではTwilio Japan合同会社が設立されています。
「はじめはKDDIウェブコミュニケーションズから販売、のちに日本法人の設立」という歴史的背景があるため、Twilioのドキュメントは2つ(`cloudapi.kddi-web.com`と`www.twilio.com/ja`)存在しています。


Twilioから提供されている主なコミュニケーションAPIは以下の通りです。[^twilio-ja-docs]

- Twilio Flex
- SMS
- Voice
- Video
- Live
- Email
- WhatsApp API
- Elastic SIP Trunking
- Conversations
- Super SIM
- Verify

[^twilio-ja-docs]: [Twilioのドキュメント](https://www.twilio.com/ja/docs)

## CPaaS企業ごとに取り扱う領域は異なる
ここまでの説明でわかる通り、CPaaSにはたくさんの要素技術や分野があります。
ですので、**CPaaS企業が扱う分野は各社によって様々**です。

TwilioやVonageのようにCPaaS関連の技術を網羅する企業もあれば、特定のコミュニケーションAPIに特化した企業も存在します。
例えば[【2020年版】人気のSMS送信サービス企業を比較してみた](https://qiita.com/smsmaniac/items/d6d099072ef4b2d902fe)はSMS APIに、[WebRTCの商用サービスまとめ｜Twilio, SkyWay, Agora.io など](https://jp.vcube.com/sdk/blog/summary-of-webrtc-commercial-services.-twilio-skyway-sora-agora.io-etc.html)の記事はVideo APIに焦点を当ててCPaaS企業を比較しています。

**CPaaSを選定する際は自分にとって必要となるコミュニケーションAPIの分野を明確にしておくことが大事**です。


## VonageとTwilioのコミュニケーションAPIを利用した具体的な実装例
コミュニケーションAPIのイメージをつかむため、コミュニケーションAPIのひとつである認証系APIを利用した二要素認証（2FA, two-factor authenticaiton）の実装例について紹介します。言語はRuby（Ruby on Rails）を利用しました。
CPaaSによる実装の違いを理解するため、Vonageの[Vonage Verify API](https://developer.vonage.com/verify/overview)とTwilioの[Twilio Verify API](https://www.twilio.com/ja/docs/verify)それぞれの実装例について紹介します。

なお、コミュニケーションAPIを利用するには事前にアカウントを作成する必要があります。
Vonageのアカウント作成は[こちら](https://dashboard.nexmo.com/sign-up)、Twilioのアカウト作成は[こちら](https://www.twilio.com/try-twilio)からできます。
どちらもアカウントにトライアル用のクレジットが付与されているため、無料でAPIを試せます。

### Vonage Verify APIを利用した二要素認証（2FA）の実装

Vonage Verify APIを利用する際に必要となるAPIキーとAPIシークレットを確認します。
APIキーとAPIシークレットは[ダッシュボード画面](https://dashboard.nexmo.com/)で確認できます。

![スクリーンショット_2021-12-05_16_17_56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/140792/bbc534b4-c6be-a16d-e865-6ecef395c569.png)

二要素認証のプロセスには「認証コードの送信」と「入力された認証コードの検証」の2ステップがあります。

[vonage gem](https://github.com/Vonage/vonage-ruby-sdk)をインストールしたRailsアプリケーション上でVonage Verify APIによる二要素認証を実行するコードは以下の通りです。
なお、電話番号のフォーマットは[E.164](https://en.wikipedia.org/wiki/E.164)にする必要があります。
E.164の場合、例えば日本の`09012345678`という携帯電話番号は、先頭の`0`を取り国番号の`+81`をつけた`+819012345678`となります。

```ruby
$ rails c

### Vonage API Clientの作成
> client = Vonage::Client.new(api_key: 'YOUR--KEY', api_secret: 'YOUR-API-SECRET')

### 認証コードの送信
> result = client.verify.request(
  number: '+81xxxx', # E.164フォーマットで記載した電話番号
  brand: "Kittens and Co",
  sender_id: 'Kittens'
)

> result["status"]
=> "0" # OK

### 認証コードの検証
> confirmation = client.verify.check(
  request_id: result["request_id"],
  code: 'xxx' # SMSで送られたコード
)

> confirmation["status"]
=> "0" # OK
```

認証コードの送信が正常に実行されるとSMSが送られてきます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/140792/b586443f-6003-d195-1b01-b9730ac2d2f4.png)


Vonage Verify APIによる二要素認証が組み込まれたアプリケーションのチュートリアルは[Two-factor authentication for security and spam prevention](https://developer.vonage.com/verify/tutorials/verify-2fa-ruby/introduction)で紹介されています。
チュートリアルは[GitHubに公開されているリポジトリ](https://github.com/nexmo-community/nexmo-rails-devise-2fa-demo)をベースに開発をしていきます。

しかし、公開されているサンプルアプリケーションは[以前話題となったmimemagic gem](https://hackmd.io/@mametter/mimemagic-info-ja)に依存をしており、**そもそも`bundle install`が実行できないという状態**でした。
そこで、今回改めてサンプルアプリケーションを実装し直してコードを公開しました。
Dockerを導入しているので、**`bundle install`などせず`docker-compose up`をするだけでアプリケーションが立ち上がり、二要素認証の確認ができるようになっています。**

リポジトリは以下になります。アプリケーションの利用方法の詳細は[README](https://github.com/nishina555/vonage-rails-devise-2fa-demo/blob/main/README.md)をご覧ください。

https://github.com/nishina555/vonage-rails-devise-2fa-demo

アプリケーションの構築手順については以下の記事で紹介していますので興味のある方はあわせてご覧になってください。

https://nishinatoshiharu.com/rails-vonage-2fa/

### Twilio Verify APIを利用した二要素認証（2FA）の実装

Twilio Verify APIを利用する際に必要となるアカウントSIDとAuthトークンを確認します。
アカウントSIDとAuthトークンは[ダッシュボードログイン画面](https://www.twilio.com/login)から確認できます。

![スクリーンショット_2021-12-05_21_27_17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/140792/dfa8d487-aee6-20a5-9a67-6f9c1fce3b15.png)


Twilio Verify APIを利用する場合はアカウントSIDとAuthトークンのほか、「Verifyサービス」と呼ばれるものを作成する必要があります。
Verifyサービスはダッシュボードの「Verify → Try it out」で作成できます。

|![スクリーンショット_2021-12-05_21_24_25.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/140792/39a59a71-3939-17b1-7a5c-a96282e35061.png)|
|:--|


Servicesにサービス名が表示されればOKです。サービス名に記載されている「SERVICE ID」がTwilio Verify APIを利用する際に必要となります。

|![スクリーンショット_2021-12-06_9_42_10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/140792/d8a88bb4-dc0b-1134-972a-e0658efd9aa0.png)|
|:--|

Twilio Verify APIを利用した二要素認証のチュートリアルは[Twilio Verify Ruby on Railsクイックスタート](https://www.twilio.com/ja/docs/verify/quickstarts/ruby-rails)に記載されています。

[twilio-ruby gem](https://github.com/twilio/twilio-ruby)をインストールしたRailsアプリケーション上でTwilio Verify APIによる二要素認証を実行するコードは以下の通りです。
TwilioもVonage同様、電話番号のフォーマットは[E.164](https://en.wikipedia.org/wiki/E.164)にする必要があります。

```ruby
$ rails c

### Twilio API Clientの作成
> account_sid = 'アカウントSID'
> auth_token = 'トークン'
> client = Twilio::REST::Client.new(account_sid, auth_token)

### 認証コードの送信
> verification = client.verify
                      .services('VAから始まるサービスID')
                      .verifications
                      .create(to: '+81xxxxx', channel: 'sms')

> verification.status
=> 'pending'

### 認証コードの検証
> verification_check = client.verify
  .services('VAから始まるサービスID')
  .verification_checks
  .create(to: '+81xxxxx', code: '受け取った認証コード')

> verification_check.status
=> "approved"
```

認証コードの送信が正常に実行されるとSMSが送られてきます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/140792/b7491ab3-7536-c008-20e2-5af456ea0d62.png)


## VonageとTwilioのコミュニケーションAPIの比較・感想
Verify APIを中心にVonageとTwilioを実際に利用した感想について紹介します。

### Vonageを使ってみた感想
**Vonageはチュートリアルの種類が豊富だったため、Vonage APIの利用方法のイメージがつきやすかった**です。
NexmoやTokBoxなど複数の企業を買収した背景があるため、ドキュメントやリンクの統一感のなさは若干否めませんでしたがAPIやSDKの利用経験者であれば特に気にならないと思います。
**Vonageには各分野に特化した企業のノウハウが集約されているため、CPaaSとしてのポテンシャルが高い**印象を受けました。

また、今回Advent Calendarの記事を執筆するにあたりVonage Japan合同会社に問い合わせをしたところすぐにメールの返信があったため**日本語によるサポートも手厚い**印象を受けました。
ですので、CPaaSを使い慣れていない人でも安心して利用できると感じました。

### Twilioを使ってみた感想
Twilioは評判通り**開発者向けドキュメントが読みやすく充実していた**印象を受けました。
特に**各言語ごとにチュートリアルが用意されている**のは開発者にとってありがたいと思いました。
チュートリアルを読み進めていけば一通りコミュニケーションAPIについて理解ができるため、CPaaSの初学者も利用しやすいプラットフォームだと感じました。

## Vonageを利用する前に知っておくとよい開発者向けTips集
記事を作成する過程でVonageを利用した開発に関する知見がたまったので共有します。
あらかじめ理解をしておくとVonageを利用した開発が捗りそうと個人的に感じた項目は以下の通りです。

- Vonage Video APIのアカウントはその他のコミュニケーションAPIのアカウントと分かれている
- NexmoやTokBoxに関する内容はVonageのことを指している
- 「チュートリアルで概要理解 → APIドキュメントで詳細確認」の流れで学習すると理解が捗る
- チュートリアルの実装言語は右サイドバーから変更できる

以下ではそれぞれの項目について詳細解説をします。

#### Vonage Video APIのアカウントはその他のコミュニケーションAPIのアカウントと分かれている
Vonageには「コミュニケーションAPIを開発するCPaaS企業のNexmoを買収、その後Video APIを開発するTokBoxを買収」という歴史があります。
そのような歴史的背景もあるため、Vonageには`Nexmo is now Vonage`と記載された[Vonage Video APIを除くVonageのコミュニケーションAPI全般を利用するアカウント](https://dashboard.nexmo.com/sign-up)と、`TokBox is now Vonage`と記載された[Vonage Video APIを利用するアカウント](https://tokbox.com/account/user/signup)の2つが存在します。

| Vonage API全般のアカウント作成 | Vonage Video APIのアカウント作成 |
|:-:|:-:|
| ![image](https://user-images.githubusercontent.com/3121046/145129206-9b0e040a-789a-4bcb-981f-6154091a42cc.png)  | ![image](https://user-images.githubusercontent.com/3121046/145129186-6e02160f-7b84-46dc-82ee-bd28be367207.png)  |

複数のアカウント作成フォームがあるので初めてVonageを利用した時は自分も混乱しました。
**Vonage Video APIを利用する場合は別途アカウントを作る必要がある**ということを覚えておくとよいです。

#### NexmoやTokBoxに関する内容はVonageのことを指している
自分の場合、Vonageをはじめて触った時はNexmo・TokBox・Vonageの関係性がよくわからず混乱しました。
NexmoとTokBoxはVonageに買収されています。ですので、**NexmoやTokBoxのことを説明している記事を見つけた時はVonageのこといっている**と理解して差し支えありません。

#### 「チュートリアルで概要理解 → APIドキュメントで詳細確認」の流れで学習すると理解が捗る
Vonageに限った話ではありませんが、APIの利用方法の具体的なイメージがつかめない状態だとドキュメントを理解するのに苦労します。
ですので、**特に初学者であれば「気になったチュートリアルをまずは進めてAPIの活用方法を理解する。その後APIの詳細をドキュメントで確認する」という手順がおすすめ**です。

Vonage Video APIのチュートリアルは[こちら](https://tokbox.com/developer/tutorials/)から確認できます。画面でいうと以下の箇所です。

![image](https://user-images.githubusercontent.com/3121046/145128621-95ef32b5-42bb-4c15-8402-bc39bf0dc245.png)

Vonage APIのチュートリアルは[こちら](https://developer.vonage.com/getting-started/overview)のページの左サイドバーに表示されている各APIの下層から確認できます。画面でいうと以下の箇所です。

![image](https://user-images.githubusercontent.com/3121046/145128559-1951dce0-cfae-49ca-9a98-4d546b7edf03.png)


#### チュートリアルの実装言語は右サイドバーから変更できる
各APIごとに用意されているチュートリアルの言語は以下のように右サイドバーから変更できます。

|![image](https://user-images.githubusercontent.com/3121046/145128467-77067530-41aa-4aa2-b7f5-2f6110bef47f.png)|
|:--|

以下のように右サイドバーに言語の記載がないチュートリアルは他の言語による実装がされていないものです。

|![image](https://user-images.githubusercontent.com/3121046/145130210-f8e76049-a759-49aa-9823-973f0c106650.png)|
|:--|


## 開発が捗る！知っておくと便利なVonageリンク集

実際に開発をしたときによく参照したリンクを紹介します。

### Vonage API（一部Vonage Video APIを除く）に関するリンク集

| URL | 説明 |
|:-|:-|
|https://developer.vonage.com/  | VonageのコミュニケーションAPIホーム画面 <br> 通称「Vonage Developer Center」|
|https://developer.vonage.com/documentation|コミュニケーションAPIの一覧ページ <br>リファレンスやチュートリアルもここから確認できる|
|https://developer.vonage.com/api|コミュニケーションAPIリファレンス一覧ページ|
|https://developer.vonage.com/tutorials|チュートリアル一覧ページ <br> 言語やプロダクトで絞り込み可能|
|https://developer.vonage.com/tools|SDK・ツール一覧|


### Vonage Video APIに関するリンク集

| URL | 説明 |
|:-|:-|
|https://tokbox.com/developer/|Vonage Video APIのホーム画面 <br> 通称「Video API Developer Center」|
|https://tokbox.com/developer/guides/basics/#opentok-rest-api|Vonage Video API Developer Centerのリンク集|
|https://tokbox.com/developer/tutorials/|Vonage Video APIのチュートリアル一覧ページ|
|https://tokbox.com/developer/rest/| Vonage Video APIリファレンス|


### そのほかのリンク集

| URL | 説明 |
|:-|:-|
|https://learn.vonage.com/|Vonageチームによる開発者向けテックブログ|
|https://www.vonagebusiness.jp/log-in|コミュニケーションAPI・Video APIを含むVonageに関連するログインフォームのリンク集|


## 今回の記事のまとめ

- CPaaSとはコミュニケーション分野の機能を提供するクラウドサービスのこと
- コミュニケーションAPIとはCPaaSから提供されるAPIの総称
- コミュニケーションAPIは主に音声、動画、メッセージ、認証のカテゴリを基礎とする
- 日本ではVonageやTwilioがCPaaS企業の中で人気
- Vonage Video APIを利用する場合は別途アカウント作成が必要

## さいごに

今回のAdvent Calendarの協賛であるVonageが提供するVonage APIのアカウントは[こちら](https://identity.nexmo.com/login)から、Vonage Video APIのアカウトは[こちら](https://tokbox.com/account/user/signup)から作成できます。アカウントにはクレジットが付与されるため、無料でコミュニケーションAPIを試せます。
今回の記事を通じて少しでもCPaaSに興味を持った方はぜひコミュニケーションAPIを実際に利用してCPaaSのおもしろさ・便利さを体験してみてください。