LoginSignup
14
5

More than 1 year has passed since last update.

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

Last updated at Posted at 2021-12-08

最新CPaaSコミュニケーションAPIを比べる or 使ってみよう! 【PR】Vonage Japanの9日目を担当する仁科(@nishina555)と申します。

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

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

本記事は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を活用するメリットをまとめると以下のようになります。 1 2 3

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

CPaaSの具体例について

CPaaSの活用事例についてまとめると以下のようになります。1 4 3

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

コミュニケーション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)と呼ばれる自動音声応答システムなどの音声に関するコミュニケーションツールが構築できます。5 6

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

動画系API

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

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

メッセージ系API

メッセージ系APIはテキストメッセージに関するAPIです。Message APIなどと呼ばれるAPIがこの類のAPIに該当します。
CPaaSによっては例えばSMS APIFacebook Messanger APIのようにチャネルごとでメッセージ系APIが細分化される場合もあります。
メッセージ系API利用することでSMSやMMSの構築をはじめ、Facebook MessangerやWahts APPといったチャットアプリとの統合が可能になります。9 10

認証系API

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

人気の高いCPaaS企業の具体例

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

複数の比較情報をもとに選出したCPaaS市場で有名な企業は以下の通りです。11 12 13 14 15 2 16

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

Vonage(ボネージ)

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

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

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

そんなVonageですが、2021年11月にエリクソンによって買収されることになりました。17
VonageのコミュニケーションAPIの今後について引き続き注目をしていきたいです。

Vonageから提供されている主なコミュニケーションAPIは以下の通りです。18

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

Twilio(トゥイリオ)

Twilio(トゥイリオ)は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.comwww.twilio.com/ja)存在しています。

Twilioから提供されている主なコミュニケーションAPIは以下の通りです。19

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

CPaaS企業ごとに取り扱う領域は異なる

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

TwilioやVonageのようにCPaaS関連の技術を網羅する企業もあれば、特定のコミュニケーションAPIに特化した企業も存在します。
例えば【2020年版】人気のSMS送信サービス企業を比較してみたはSMS APIに、WebRTCの商用サービスまとめ|Twilio, SkyWay, Agora.io などの記事はVideo APIに焦点を当ててCPaaS企業を比較しています。

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

VonageとTwilioのコミュニケーションAPIを利用した具体的な実装例

コミュニケーションAPIのイメージをつかむため、コミュニケーションAPIのひとつである認証系APIを利用した二要素認証(2FA, two-factor authenticaiton)の実装例について紹介します。言語はRuby(Ruby on Rails)を利用しました。
CPaaSによる実装の違いを理解するため、VonageのVonage Verify APIとTwilioのTwilio Verify APIそれぞれの実装例について紹介します。

なお、コミュニケーションAPIを利用するには事前にアカウントを作成する必要があります。
Vonageのアカウント作成はこちら、Twilioのアカウト作成はこちらからできます。
どちらもアカウントにトライアル用のクレジットが付与されているため、無料でAPIを試せます。

Vonage Verify APIを利用した二要素認証(2FA)の実装

Vonage Verify APIを利用する際に必要となるAPIキーとAPIシークレットを確認します。
APIキーとAPIシークレットはダッシュボード画面で確認できます。

スクリーンショット_2021-12-05_16_17_56.png

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

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

$ 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

Vonage Verify APIによる二要素認証が組み込まれたアプリケーションのチュートリアルはTwo-factor authentication for security and spam preventionで紹介されています。
チュートリアルはGitHubに公開されているリポジトリをベースに開発をしていきます。

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

リポジトリは以下になります。アプリケーションの利用方法の詳細はREADMEをご覧ください。

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

Twilio Verify APIを利用した二要素認証(2FA)の実装

Twilio Verify APIを利用する際に必要となるアカウントSIDとAuthトークンを確認します。
アカウントSIDとAuthトークンはダッシュボードログイン画面から確認できます。

スクリーンショット_2021-12-05_21_27_17.png

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

スクリーンショット_2021-12-05_21_24_25.png

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

スクリーンショット_2021-12-06_9_42_10.png

Twilio Verify APIを利用した二要素認証のチュートリアルはTwilio Verify Ruby on Railsクイックスタートに記載されています。

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

$ 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

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全般を利用するアカウントと、TokBox is now Vonageと記載されたVonage Video APIを利用するアカウントの2つが存在します。

Vonage API全般のアカウント作成 Vonage Video APIのアカウント作成
image image

複数のアカウント作成フォームがあるので初めて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のチュートリアルはこちらから確認できます。画面でいうと以下の箇所です。

image

Vonage APIのチュートリアルはこちらのページの左サイドバーに表示されている各APIの下層から確認できます。画面でいうと以下の箇所です。

image

チュートリアルの実装言語は右サイドバーから変更できる

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

image

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

image

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

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

Vonage API(一部Vonage Video APIを除く)に関するリンク集

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

Vonage Video APIに関するリンク集

URL 説明
https://tokbox.com/developer/ Vonage Video APIのホーム画面
通称「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のアカウントはこちらから、Vonage Video APIのアカウトはこちらから作成できます。アカウントにはクレジットが付与されるため、無料でコミュニケーションAPIを試せます。
今回の記事を通じて少しでもCPaaSに興味を持った方はぜひコミュニケーションAPIを実際に利用してCPaaSのおもしろさ・便利さを体験してみてください。

14
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14
5