You are viewing the Japanese site, but your language preference is set to English. Switch to English site →

Menu

Expand
このページを評価:

PHP向けProgrammable Voiceクイックスタート

必要なものはコード数行のみ。Twilio Programmable Voiceを使用し、PHP webアプリケーションから通話の発着信を行うことができます。

このPHP Voiceクイックスタートでは、TwilioのVoice REST APITwilio PHPヘルパーライブラリー、ビルトインPHP開発Webサーバー、ngrokを使用し、ローカルサーバーをTwilioに公開することにより、発着信を行う方法について説明します。

Composerパッケージマネージャーにより依存関係を管理します(Composerを使用しない場合はComposerを使用しないPHP Voiceクイックスタートをお試しください)。

このクイックスタートでは、以下について説明します。

  1. Twilioにサインアップし、音声対応のTwilioの電話番号を初めて取得する
  2. Composerを使用し、PHPの前提条件を確認しインストールする
  3. 通話を発信し、MP3を再生する
  4. 通話の着信・応答時に、Text to Speechを使用し発信側に対しメッセージを読み上げる

ビデオもご用意しています。PHPにより通話の発着信を行う方法(YouTube)をご覧ください。

通話方法はこちら

Twilioにサインアップし電話番号を取得する

Twilioアカウント、音声対応のTwilio電話番号をすでにお持ちの場合には、ログインし、次のステップに進んでください

無料のTwilioトライアルアカウントには、こちらからサインアップできます。

  • サインアップの際に、お客様個人の電話番号を確認させていただきます。これにより、Twilioはお客様の本人確認を行うことができ、お客様はトライアルモード中にTwilioアカウントからご自身の電話に発信することもできます。
  • 電話番号が認証されると、プロジェクトの作成を求められます。このチュートリアルでは、"Learn and Explore"(学びながら探検)テンプレートを使用します。プロジェクトに名前を付けるか、"skip remaining steps"(残りのステップを省略)をクリックし、デフォルト値で続行します。
  • プロジェクト作成フローを終えると、Twilio Consoleにプロジェクトダッシュボードが表示されます。このダッシュボードを使用し、アカウントSID、認証トークン、Twilio電話番号などにアクセスできます。

Voice機能付きのTwilio電話番号をまだお持ちではない場合には、ご購入いただく必要があります。[Buy a Number](番号を購入する)ページに移動し、["Voice"]ボックスをチェックし、["Search."](検索)をクリックします。

Search for a Phone Number.png

使用可能な電話番号とその機能のリストが表示されます。好みの番号を探し、["Buy"](購入)をクリックしアカウントに追加します。

Buy a Phone Number.png

ヘルパーライブラリーのインストール方法を確認します。

PHPとTwilio PHPヘルパーライブラリーをインストールする

作業用ディレクトリに、すでにPHPとTwilio PHPヘルパーライブラリーがインストールされている場合、このステップは必要ありません。このステップを省略し、最初のテキストメッセージ送信に移動してください。

初めての音声通話発信のために、PHPが設定されていること、TwilioのPHPヘルパーライブラリーをインストールできることを確認します。

PHPを使用しWeb開発を行う場合、パッケージ管理にComposerを使用することを強くお勧めします。このクイックスタートでは、PHPヘルパーライブラリーのインストールにComposerを使用します。(Composerを使用しない場合は、PHPヘルパーライブラリーのページにある手動のTwilio PHPインストール手順をご覧ください)。

PHPをインストールする

MacまたはUnix系のマシンの場合、PHPがすでにインストールされている可能性があります。ターミナルで以下を実行します。

php --version

PHPがインストールされていない場合は、PHPインストール手順に従います。

Windowsマシンの場合はPHPインストールの公式のPHPチュートリアルに従います。

このクイックスタートでは、PHP 7.xバージョンの多くが機能しますが、サポートされているPHPリリースにご注意ください。Web開発を行う際、PHPバージョンを、セキュリティアップデートが適用されるバージョンに必ず更新してください

パッケージ管理のためにComposerをインストールする

Composerは、PHP Web開発におけるデファクトスタンダードのパッケージマネージャーです。このチュートリアルでは、Composerが必要になります。Composerをインストールしない場合は、Composerを使用しないPHP Voiceクイックスタートをお試しください。

Twilio PHPヘルパーライブラリーをインストールする

ここでTwilio PHPヘルパーライブラリーをインストールする必要があります。

まず、このクイックスタートを実行するディレクトリに移動し、以下のいずれかの方法によりヘルパーライブラリーをインストールします。

ターミナルから、以下のコマンドを実行します。

composer require twilio/sdk

またはcomposer.jsonという名前のファイルを代わりに作成できます。そのファイルに以下を追加します。

{
    "require": {
        "twilio/sdk": "^5.0"
    }
}

次に以下を実行します。

composer install

Composerは最新の5.xバージョンのTwilio PHPヘルパーライブラリーを取得します。

Composerを使用しない場合には、こちらのPHP Voiceクイックスタートをお試しください

インストールが完了し、通話の準備ができました。

PHPを使用し通話を発信する

PHPとPHPヘルパーライブラリーがインストールされたため、1回のAPIリクエストにより通話を発信できるようになりました。make_call.phpという新しいファイルを作成し、このコードサンプルを入力または貼り付けします。

        
        
        
        PHPヘルパーライブラリーを使用しVoice通話を発信する

        音声通話を発信する

        PHPヘルパーライブラリーを使用しVoice通話を発信する

        コードを実行すると、引数として渡された2つの番号の間で通話が開始されます。「From」と「To」の番号を示すための2つの引数を追加しました。これらは以下のようにマッピングされます。

        • (From)/twilio_number: お客様が購入したTwilioの電話番号
        • (To)/to_number: 通話する番号(ご自身の携帯電話番号でも可)

        アレイ内のurl引数はTwiMLを指します。TwiMLは、Twilioが内部的に使用する言語です。音声通話のシーケンスなど、アクションの開始や応答に使用されます。この特定のTwiMLは、音声合成機能によりTwilioにメッセージを読ませ、その後「To」のto_numberの番号に向けてMP3を再生します。

        このコードを実行する前に、アカウントに固有のいくつかの値で置き換える必要があります。

        プレースホルダの認証情報を自分のものに置き換える

        account_sidauth_tokenのプレースホルダ値を、ご自身のTwilioアカウントの認証情報に置き換えます。

        これらを探すには、https://www.twilio.com/consoleにアクセスし、ログインします。このページでは、お客様固有のAccount SIDAuth Tokenを確認できます。「目」のアイコンをクリックすると、Auth Tokenが表示されます。

        Reveal Your Auth Token

        make_call.phpを開き、account_sidauth_tokenの値をご自身固有の値に置き換えます。

        注記: このクイックスタートでは認証情報をコードに直接埋め込んだ方が簡単ですが、本番環境では環境変数を使用し、認証情報を保護してください。詳細については、環境変数の設定方法をご覧ください。読み上げの例についてはコードのコメントをご確認ください。こちらのレポートもご確認ください。PHPにおける環境変数のリファレンスとして大変便利です。

        twilio_number電話番号を置き換える

        ここまでの間に、音声対応の電話番号を購入するか、お手持ちの番号をご用意されたはずです。その番号を、E.164形式を使用し、twilio_number変数に貼り付けます。

        [+][国コード][エリアコードを含む電話番号]

        例: +18005551212

        to_number電話番号を置き換える

        再度E.164形式を使用し、着信側の電話番号に置き換えます。コードを実行した後、通話を受け、コードの結果を聞くことができるよう、ここではご自身の電話番号を使用してください。

        Twilioのトライアルアカウントをご使用の場合には、Twilioにより確認された番号のみに通話を発信できます。電話番号は、Twilio Consoleの認証済み発信者IDにより認証できます。トライアルアカウントのすべての制限については無料のTwilioトライアルアカウントでの作業方法に関するガイドを参照してください。

        スクリプトを保存し、起動させ、通話の発信をテストします。OSXとUNIX系では、以下のようになります。

        php make_call.php

        すべての置き換えが正しければ、すぐにメッセージと歌が聞こえるはずです。そうでなくても、決してあきらめずに、コンソールのプロンプトに従いましょう。

        うまくできました。次のステップ

        PHPを使用し、音声通話を受けて応答する

        誰かがお客様のTwilio電話番号に発信すると、Twilioは、お客様のサーバーに対してHTTPリクエストを実行し、通話をどのように処理するかを尋ねます。このクイックスタートでは、送信者に応答し、TwilioのText To Speech機能を使用し通話のお礼を伝えることにします。

        このステップでも、Twilio PHPライブラリーを使用します。PHPのビルトイン開発Webサーバーとngrokを組み合わせて使用し、Twilioに通話の処理方法を指示します。

        make_call.phpと同じディレクトリに、answer_call.phpという新しいファイルを作成します。次に、以下のコードをコピーし貼り付けるか、入力します。

        (注意: 最初の通話を作成した際のディレクトリと同じディレクトリを使用しない場合には、上記のPHPヘルパーライブラリーのインストール手順に従います)

              
              
              
              PHPヘルパーライブラリーを使用しVoice通話を受けて応答する

              音声通話を着信する

              PHPヘルパーライブラリーを使用しVoice通話を受けて応答する

              answer_call.phpを保存し、次に以下のコードを使用し、ローカルのPHP開発サーバーを起動します。

              php -S localhost:8000

              ブラウザーのタブでURL http://localhost:8000/answer_call.phpを開きます。

              何も問題がなければ、受信通話に対して読み上げるメッセージと共にXMLがブラウザーに表示されます。必要なコードはこれだけです。完了まであと数ステップです。

              次に、このエンドポイントをTwilioに公開します。

              非常に簡単です。Twilioに新しいアプリケーションと通信させるには?

              TwilioをPHPアプリケーションと通信させる

              着信通話にどのように対応するかをTwilioに指示する前に、まずサーバーを外部のネットワークに公開する必要があります。ローカルの開発サーバーは、多くの場合、ローカルネットワークからしかアクセスできません。しかし心配は不要です。サーバーをテストする簡単な方法をご紹介します。

              多くのTwilio製品とサービスは、Webhookを使用することによりアプリケーションとやり取りします。たとえば、Twilioが着信通話を受信する際、Twilioは提供された特定のURLにアクセスし、応答の処理方法の手順を探します。answer_call.phpにある小さなコードは、発信者への「応答」に使用する手順の例です。ただし、サーバーを実行する際はローカルのみで公開され、外部のネットワークには公開されません。これを修正する方法を見つけ出す必要があります。

              このコードを公開する方法は多数ありますが(コードをホストにデプロイするなど)、Twilioではngrokというツールの使用をお勧めします。ngrokを開始すると、ngrok.ioドメインの一意のURLが提供され、受信リクエストがローカルの開発環境に転送されます。

              アーキテクチャは以下のようになります。

              How ngrok helps Twilio reach your local server

              まだngrokをご利用でない場合には、ダウンロードページを参照し、お使いのオペレーティングシステムにインストールしてください。

              MacまたはLinuxをお使いの場合は、これで必要な作業は完了です。Windowsをご使用の場合は、Windowsにngrokをインストールし、設定する方法についてのガイドを参照してください。ngrokの詳細(と素晴らしいヒント)については、こちらのngrokブログ記事をご覧ください。

              ngrokをダウンロードしインストールした後、新しいターミナルタブまたはウィンドウを開き(開発サーバーを実行させたまま)、このコマンドを使用しngrokを起動します。

              ./ngrok http 8000

              次のような出力が表示されるはずです。

              Ngrok server terminal output

              この出力から公開URLをコピーし、それをブラウザーに貼り付け、answer_call.phpを追加します。以前と同じXMLが表示されますが、今はインターネットにアクセスできる場所であればどこからでもここにアクセスできるようになりました。

              これでサーバーが公開されたため、Twilioにその場所を伝えます。

              サーバーは公開されています。通話の着信方法を教えてください。

              Webhook URLを設定する

              これでサーバーが一般公開されたため、Twilioの電話番号を設定し、新しい着信通話の際に、Webhook URLにアクセスするようにします。

              1. [Console's Numbers](Consoleの番号)ページに移動します。
              2. 音声対応の電話番号をクリックします。
              3. [Voice & Fax](音声とファックス)セクションを探します。[Accept Incoming](着信受け付け)選択項目が[Voice Calls](音声通話)に設定されていることを確認します。デフォルトの[Configure With](設定方法)選択項目には、[Webhooks][TwiML]など、必要なものを設定します。
              4. [A Call Comes In](次で通話を受信)セクションでは、[Webhook]を選択し、使用するURLを貼り付け、 /answer_call.phpを追加します。

              Voice call webhook with ngrok

              変更内容を保存すると、準備完了です。

              アプリケーションをテストする

              ローカル開発サーバーがまだ稼働中、さらにngrokを実行中であれば、テストを開始できます。

              ご自分のTwilio電話番号に通話を発信します。以下が順に実行され、音声が聞こえます。

              1. ngrokコンソールにHTTPリクエストが表示されます
              2. 開発サーバーは、コンソールにメッセージを出力します
              3. 通話が接続されると、メッセージが聞こえます

              これで完了です。PHPを使用した通話の発着信を処理できるようになりました。

              うまくいきました!次のステップ

              次のステップ

              PHPを使用した通話の発着信に関する基本が理解できました。

              このPHPアプリでは、TwiML動詞<Say>のみを使用し、音声合成機能により発信者に向けてメッセージを読み上げました。別のTwiML動詞を使用すると、他のパワフルな構成や通話フローを作成できます。<Record><Gather><Conference>など、いくつか試してみてください。

              詳細については、以下のページをご覧ください。

              コミュニケーションの未来を構築。

              このページを評価:

              サポートが必要ですか?

              コーディングに関するご質問、ご不明点等ございましたら、お問い合わせからご連絡いただくか、TwilioのStack Overflow Collectiveにアクセスいただくか、Stack OverflowサイトでTwilioタグを検索してください。

                    
                    
                    

                    フィードバックいただき、ありがとうございました。

                    フィードバックいただいた理由を選択してください。その他、ご意見をいただければ、今後のドキュメントの改善に役立てさせていただきます。

                    フィードバックを送信中...
                    🎉 フィードバックいただき、ありがとうございました。
                    何らかの問題が発生しました。もう一度試してください。

                    フィードバックいただき、ありがとうございました。

                    Twilioを紹介して$10ゲットしてください。次の3ステップです。

                    ステップ1

                    リンクの取得

                    無料の個人用紹介リンクをこちらから取得してください

                    ステップ2

                    $10受け取るには

                    あなたの顧客がサインアップし、リンクからアップグレードすると、プレゼントします

                    ステップ3

                    $10ゲット

                    1,250通の無料SMS
                    または、1,000分の無料音声通話
                    または、12,000チャット
                    そのほか