Verwenden von Twilio für Telefonie- und SMS-Funktionen in PHPHow to Use Twilio for Voice and SMS Capabilities in PHP

Dieser Leitfaden veranschaulicht die Ausführung allgemeiner Programmierungsaufgaben mit dem Twilio-API-Dienst in Azure.This guide demonstrates how to perform common programming tasks with the Twilio API service on Azure. Die Szenarien behandeln das Tätigen eines Telefonanrufs und das Senden einer Kurznachricht (SMS).The scenarios covered include making a phone call and sending a Short Message Service (SMS) message. Weitere Informationen zu Twilio und zur Verwendung von Telefonie und SMS in Ihren Anwendungen finden Sie im Abschnitt Nächste Schritte .For more information on Twilio and using voice and SMS in your applications, see the Next Steps section.

Was ist Twilio?What is Twilio?

Twilio ist ein leistungsstarkes und zukunftsorientiertes Tool für die Unternehmenskommunikation, mit dem Entwickler Telefonie-, VoIP- und Messagingfunktionalitäten in Anwendungen einbetten können.Twilio is powering the future of business communications, enabling developers to embed voice, VoIP, and messaging into applications. Die gesamte in einer cloudbasierten, globalen Umgebung benötigte Infrastruktur wird virtualisiert und über die Twilio-API-Kommunikationsplattform zur Verfügung gestellt.They virtualize all infrastructure needed in a cloud-based, global environment, exposing it through the Twilio communications API platform. Anwendungen können einfach erstellt und skaliert werden.Applications are simple to build and scalable. Sie profitieren von flexiblen Pay-as-you-go-Preisen und der Zuverlässigkeit der Cloud.Enjoy flexibility with pay-as-you go pricing, and benefit from cloud reliability.

Twilio Voice ermöglicht Anwendungen das Tätigen und Entgegennehmen von Telefonanrufen.Twilio Voice allows your applications to make and receive phone calls. Twilio SMS ermöglicht Ihren Anwendungen das Senden und Empfangen von SMS-Nachrichten.Twilio SMS enables your application to send and receive text messages. Twilio Client ermöglicht Ihnen das Tätigen von VoIP-Anrufen von jedem Telefon, Tablet-PC oder Browser und unterstützt WebRTC.Twilio Client allows you to make VoIP calls from any phone, tablet, or browser and supports WebRTC.

Twilio-Preise und -SonderangeboteTwilio Pricing and Special Offers

Azure-Kunden erhalten ein Sonderangebot: eine Twilio-Gutschrift in Höhe von 10 US-Dollar bei einem Upgrade Ihres Twilio-Kontos.Azure customers receive a special offer: complimentary $10 of Twilio Credit when you upgrade your Twilio Account. Diese Twilio-Gutschrift kann für jede beliebige Twilio-Nutzung ausgegeben werden (eine Gutschrift von 10 US-Dollar reicht für den Versand von 1.000 SMS-Nachrichten oder für bis zu 1.000 eingehende Telefonminuten, abhängig vom Standort der Telefonnummer und dem Nachrichten- oder Anrufziel).This Twilio Credit can be applied to any Twilio usage ($10 credit equivalent to sending as many as 1,000 SMS messages or receiving up to 1000 inbound Voice minutes, depending on the location of your phone number and message or call destination). Lösen Sie diese Twilio-Gutschrift ein, und beginnen Sie unter https://ahoy.twilio.com/azure.Redeem this Twilio credit and get started at: https://ahoy.twilio.com/azure.

Twilio ist ein Pay-as-you-go-Dienst, also vertragsungebunden.Twilio is a pay-as-you-go service. Es fallen keine Einrichtungsgebühren an, und Sie können Ihr Konto jederzeit schließen.There are no set-up fees and you can close your account at any time. Weitere Informationen finden Sie unter Twilio-Preise.You can find more details at Twilio Pricing.

KonzepteConcepts

Die Twilio-API ist eine RESTful-API, die Telefonie- und SMS-Funktionen für Anwendungen bereitstellt.The Twilio API is a RESTful API that provides voice and SMS functionality for applications. Clientbibliotheken stehen in mehreren Sprachen zur Verfügung – eine Liste finden Sie unter Twilio-API-Bibliotheken.Client libraries are available in multiple languages; for a list, see Twilio API Libraries.

Schlüsselaspekte der Twilio API sind Twilio-Verben und die Twilio Markup Language (TwiML).Key aspects of the Twilio API are Twilio verbs and Twilio Markup Language (TwiML).

Twilio-VerbenTwilio Verbs

Die API verwendet Twilio-Verben; so weist beispielsweise das Verb <Say> Twilio an, eine Nachricht in einem Anruf akustisch zu übermitteln.The API makes use of Twilio verbs; for example, the <Say> verb instructs Twilio to audibly deliver a message on a call.

Nachfolgend finden Sie eine Liste mit Twilio-Verben.The following is a list of Twilio verbs. Andere Verben und Funktionen werden in der Dokumentation zur Twilio Markup Languageerläutert.Learn about the other verbs and capabilities via Twilio Markup Language documentation.

  • <Dial:> Verbindet den Anrufer mit einem anderen Telefon.<Dial>: Connects the caller to another phone.
  • <Gather:> Erfasst Ziffern, die über die Telefontasten eingegeben werden.<Gather>: Collects numeric digits entered on the telephone keypad.
  • <Hangup:> Beendet einen Anruf.<Hangup>: Ends a call.
  • <Play:> Gibt eine Audiodatei wieder.<Play>: Plays an audio file.
  • <Pause:> Wartet ohne Ton für eine angegebene Anzahl von Sekunden.<Pause>: Waits silently for a specified number of seconds.
  • <Record:> Zeichnet die Stimme des Anrufers auf und gibt eine URL einer Datei mit der Aufzeichnung zurück.<Record>: Records the caller's voice and returns a URL of a file that contains the recording.
  • <Redirect:> Überträgt die Steuerung eines Anrufs oder einer SMS an die TwiML an einer anderen URL.<Redirect>: Transfers control of a call or SMS to the TwiML at a different URL.
  • <Reject:> Lehnt einen bei Ihrer Twilio-Nummer eingehenden Anruf ab, ohne dass Ihnen Kosten entstehen.<Reject>: Rejects an incoming call to your Twilio number without billing you
  • <Say:> Konvertiert Text in Sprache für einen Anruf.<Say>: Converts text to speech that is made on a call.
  • <Sms:> Sendet eine SMS-Nachricht.<Sms>: Sends an SMS message.

TwiMLTwiML

TwiML ist ein Satz XML-basierter Anweisungen auf Grundlage der Twilio-Verben, die Twilio anweisen, wie ein Anruf oder eine SMS verarbeitet werden soll.TwiML is a set of XML-based instructions based on the Twilio verbs that inform Twilio of how to process a call or SMS.

Die TwiML im folgenden Beispiel konvertiert den Text Hello World in Sprache.As an example, the following TwiML would convert the text Hello World to speech.

<?xml version="1.0" encoding="UTF-8" ?>
<Response>
   <Say>Hello World</Say>
</Response>

Wenn eine Anwendung die Twilio-API aufruft, ist einer der API-Parameter die URL, die die TwiML-Antwort zurückgibt.When your application calls the Twilio API, one of the API parameters is the URL that returns the TwiML response. Zu Entwicklungszwecken können Sie die von Twilio zur Verfügung gestellten URLs verwenden, um die von Ihren Anwendungen verwendeten TwiML-Antworten bereitzustellen.For development purposes, you can use Twilio-provided URLs to provide the TwiML responses used by your applications. Sie können auch Ihre eigenen URLs hosten, um TwiML-Antworten zu generieren; eine weitere Option ist die Verwendung des TwiMLResponse -Objekts.You could also host your own URLs to produce the TwiML responses, and another option is to use the TwiMLResponse object.

Weitere Informationen zu Twilio-Verben, ihren Attributen sowie TwiML finden Sie unter TwiML.For more information about Twilio verbs, their attributes, and TwiML, see TwiML. Weitere Informationen zur Twilio-API finden Sie unter Twilio-API.For additional information about the Twilio API, see Twilio API.

Erstellen von Twilio-KontenCreate a Twilio Account

Wenn Sie ein Twilio-Konto erstellen möchten, melden Sie sich bei Try Twilio an.When you're ready to get a Twilio account, sign up at Try Twilio. Sie können mit einem kostenlosen Konto beginnen und später ein Upgrade vornehmen.You can start with a free account, and upgrade your account later.

Wenn Sie sich für ein Twilio-Konto anmelden, erhalten Sie eine Konto-ID und ein Authentifizierungstoken.When you sign up for a Twilio account, you'll receive an account ID and an authentication token. Beide Angaben benötigen Sie zum Tätigen von Twilio-API-Anrufen.Both will be needed to make Twilio API calls. Bewahren Sie Ihr Authentifizierungstoken sicher auf, um unbefugten Zugriff auf Ihr Konto zu verhindern.To prevent unauthorized access to your account, keep your authentication token secure. Ihre Konto-ID und das Authentifizierungstoken können Sie auf der Twilio-Kontoseite in den Feldern ACCOUNT SID bzw. AUTH TOKEN einsehen.Your account ID and authentication token are viewable at the Twilio account page, in the fields labeled ACCOUNT SID and AUTH TOKEN, respectively.

Erstellen einer PHP-AnwendungCreate a PHP Application

PHP-Anwendungen, die den Twilio-Dienst verwenden und in Azure ausgeführt werden, unterscheiden sich nicht von anderen PHP-Anwendungen, die den Twilio-Dienst verwenden.A PHP application that uses the Twilio service and is running in Azure is no different than any other PHP application that uses the Twilio service. Twilio-Dienste sind REST-basiert und können in PHP auf verschiedene Arten aufgerufen werden. Dieser Artikel konzentriert sich auf die Verwendung von Twilio mit der Twilio-Bibliothek für PHP von GitHub.While Twilio services are REST-based and can be called from PHP in several ways, this article will focus on how to use Twilio services with Twilio library for PHP from GitHub. Weitere Informationen zur Verwendung der Twilio-Bibliothek für PHP finden Sie unter https://www.twilio.com/docs/libraries/php.For more information about using the Twilio library for PHP, see https://www.twilio.com/docs/libraries/php.

Ausführliche Anweisungen zum Erstellen und Bereitstellen von Twilio-/PHP-Anwendungen in Azure finden Sie unter Tätigen eines Telefonanrufs mit Twilio in einer PHP-Anwendung in Azure.Detailed instructions for building and deploying a Twilio/PHP application to Azure are available at How to Make a Phone Call Using Twilio in a PHP Application on Azure.

Konfigurieren einer Anwendung für die Verwendung von Twilio-BibliothekenConfigure Your Application to Use Twilio Libraries

Sie können die Anwendung auf zwei verschiedene Arten für die Twilio-Bibliothek in PHP konfigurieren:You can configure your application to use the Twilio library for PHP in two ways:

  1. Sie können die Twilio-Bibliothek für PHP von GitHub (https://github.com/twilio/twilio-php) herunterladen und das Verzeichnis Services Ihrer Anwendung hinzufügen.Download the Twilio library for PHP from GitHub (https://github.com/twilio/twilio-php) and add the Services directory to your application.

    ODER-OR-

  2. Sie können die Twilio-Bibliothek für PHP als PEAR-Paket installieren.Install the Twilio library for PHP as a PEAR package. Führen Sie dazu die folgenden Befehle aus:It can be installed with the following commands:

     $ pear channel-discover twilio.github.com/pear
     $ pear install twilio/Services_Twilio
    

Nachdem Sie die Twilio-Bibliothek für PHP installiert haben, können Sie eine require_once-Anweisung am Anfang Ihrer PHP-Dateien hinzufügen, um auf die Bibliothek zu verweisen:Once you have installed the Twilio library for PHP, you can then add a require_once statement at the top of your PHP files to reference the library:

    require_once 'Services/Twilio.php';

Weitere Informationen finden Sie unter https://github.com/twilio/twilio-php/blob/master/README.md.For more information, see https://github.com/twilio/twilio-php/blob/master/README.md.

Gewusst wie: Tätigen von ausgehenden AnrufenHow to: Make an outgoing call

Nachfolgend wird erläutert, wie Sie einen ausgehenden Anruf mit der Services_Twilio-Klasse tätigen.The following shows how to make an outgoing call using the Services_Twilio class. Dieser Code verwendet eine von Twilio bereitgestellte Website für die Rückgabe der TwiML-Antwort (Twilio Markup Language).This code also uses a Twilio-provided site to return the Twilio Markup Language (TwiML) response. Geben Sie Ihre Werte für die Telefonnummern From und To ein, und stellen Sie sicher, dass Sie die From-Telefonnummer für Ihr Twilio-Konto verifizieren, bevor Sie den Code ausführen.Substitute your values for the From and To phone numbers, and ensure that you verify the From phone number for your Twilio account prior to running the code.

// Include the Twilio PHP library.
require_once 'Services/Twilio.php';

// Library version.
$version = "2010-04-01";

// Set your account ID and authentication token.
$sid = "your_twilio_account_sid";
$token = "your_twilio_authentication_token";

// The number of the phone initiating the call.
$from_number = "NNNNNNNNNNN";

// The number of the phone receiving call.
$to_number = "NNNNNNNNNNN";

// Use the Twilio-provided site for the TwiML response.
$url = "https://twimlets.com/message";

// The phone message text.
$message = "Hello world.";

// Create the call client.
$client = new Services_Twilio($sid, $token, $version);

//Make the call.
try
{
    $call = $client->account->calls->create(
        $from_number, 
        $to_number,
          $url.'?Message='.urlencode($message)
    );
}
catch (Exception $e) 
{
    echo 'Error: ' . $e->getMessage();
}

Wie bereits erwähnt, verwendet dieser Code eine von Twilio bereitgestellte Website für die Rückgabe der TwiML-Antwort.As mentioned, this code uses a Twilio-provided site to return the TwiML response. Stattdessen können Sie die TwiML-Antwort auch von Ihrer eigenen Website bereitstellen lassen. Weitere Informationen dazu finden Sie unter Bereitstellen von TwiML-Antworten von der eigenen Website.You could instead use your own site to provide the TwiML response; for more information, see How to Provide TwiML Responses from Your Own Web Site.

Gewusst wie: Senden einer SMS-NachrichtHow to: Send an SMS message

Das folgende Beispiel zeigt, wie Sie eine SMS-Nachricht mit der Services_Twilio-Klasse senden.The following shows how to send an SMS message using the Services_Twilio class. Die From -Nummer wird von Twilio für Testkonten zum Senden von SMS-Nachrichten bereitgestellt.The From number is provided by Twilio for trial accounts to send SMS messages. Die To -Nummer muss für Ihr Twilio-Konto überprüft werden, bevor Sie den Code ausführen.The To number must be verified for your Twilio account prior to running the code.

// Include the Twilio PHP library.
require_once 'Services/Twilio.php';

// Library version.
$version = "2010-04-01";

// Set your account ID and authentication token.
$sid = "your_twilio_account_sid";
$token = "your_twilio_authentication_token";


$from_number = "NNNNNNNNNNN"; // With trial account, texts can only be sent from your Twilio number.
$to_number = "NNNNNNNNNNN";
$message = "Hello world.";

// Create the call client.
$client = new Services_Twilio($sid, $token, $version);

// Send the SMS message.
try
{
    $client->$client->account->messages->sendMessage($from_number, $to_number, $message);
}
catch (Exception $e) 
{
    echo 'Error: ' . $e->getMessage();
}

Gewusst wie: Bereitstellen von TwiML-Antworten von der eigenen WebsiteHow to: Provide TwiML Responses from your own Website

Wenn Ihre Anwendung einen Anruf an die Twilio-API initiiert, sendet Twilio Ihre Anforderung an eine URL, von der die Rückgabe einer TwiML-Antwort erwartet wird.When your application initiates a call to the Twilio API, Twilio will send your request to a URL that is expected to return a TwiML response. Das obige Beispiel verwendet die von Twilio bereitgestellte URL https://twimlets.com/message.The example above uses the Twilio-provided URL https://twimlets.com/message. (TwiML wurde für die Verwendung durch Twilio konzipiert, kann jedoch im Browser angezeigt werden.(While TwiML is designed for use by Twilio, you can view the it in your browser. Klicken Sie beispielsweise auf https://twimlets.com/message, um ein leeres <Response> -Element anzuzeigen. Ein weiteres Beispiel: Klicken Sie auf https://twimlets.com/message?Message%5B0%5D=Hello%20World, um ein <Response> -Element mit einem <Say> -Element anzuzeigen.)For example, click https://twimlets.com/message to see an empty <Response> element; as another example, click https://twimlets.com/message?Message%5B0%5D=Hello%20World to see a <Response> element that contains a <Say> element.)

Anstelle der von Twilio bereitgestellten URL können Sie auch Ihre eigene Website für die Rückgabe von HTTP-Antworten erstellen.Instead of relying on the Twilio-provided URL, you can create your own site that returns HTTP responses. Sie können die Website in allen Sprachen erstellen, die XML-Antworten zurückgeben. Dieses Beispiel geht davon aus, dass Sie die TwiML-Antwort mit PHP erstellen.You can create the site in any language that returns XML responses; this topic assumes you'll be using PHP to create the TwiML.

Die folgende PHP-Seite erstellt eine TwiML-Antwort, die beim Anruf Hello World sagt.The following PHP page results in a TwiML response that says Hello World on the call.

<?php    
    header("content-type: text/xml");    
    echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
?>
<Response>    
    <Say>Hello world.</Say>
</Response>

Wie das vorstehende Beispiel zeigt, handelt es sich bei der TwiML-Antwort einfach um ein XML-Dokument.As you can see from the example above, the TwiML response is simply an XML document. Die Twilio-Bibliothek für PHP enthält Klassen, die TwiML für Sie generieren.The Twilio library for PHP contains classes that will generate TwiML for you. Das folgende Beispiel generiert die gleiche Antwort wie oben, jedoch unter Verwendung der Services_Twilio_Twiml-Klasse in der Twilio-Bibliothek für PHP:The example below produces the equivalent response as shown above, but uses the Services_Twilio_Twiml class in the Twilio library for PHP:

require_once('Services/Twilio.php');

$response = new Services_Twilio_Twiml();
$response->say("Hello world.");
print $response;

Weitere Informationen zu TwiML finden Sie unter https://www.twilio.com/docs/api/twiml.For more information about TwiML, see https://www.twilio.com/docs/api/twiml.

Sobald Sie Ihre PHP-Seite mit den TwiML-Antworten eingerichtet haben, können Sie die URL der PHP-Seite an die Services_Twilio->account->calls->create-Methode übergeben.Once you have your PHP page set up to provide TwiML responses, use the URL of the PHP page as the URL passed into the Services_Twilio->account->calls->create method. Beispiel: Ihre Webanwendung MyTwiML liegt in einem unter Azure gehosteten Dienst, und der Name der PHP-Seite lautet mytwiml.php. In diesem Fall kann die URL wie im folgenden Codebeispiel gezeigt an Services_Twilio->account->calls->create übergeben werden:For example, if you have a Web application named MyTwiML deployed to an Azure hosted service, and the name of the PHP page is mytwiml.php, the URL can be passed to Services_Twilio->account->calls->create as shown in the following example:

require_once 'Services/Twilio.php';

$sid = "your_twilio_account_sid";
$token = "your_twilio_authentication_token";
$from_number = "NNNNNNNNNNN";
$to_number = "NNNNNNNNNNN";
$url = "http://<your_hosted_service>.cloudapp.net/MyTwiML/mytwiml.php";

// The phone message text.
$message = "Hello world.";

$client = new Services_Twilio($sid, $token, "2010-04-01");

try
{
    $call = $client->account->calls->create(
        $from_number, 
        $to_number,
          $url.'?Message='.urlencode($message)
    );
}
catch (Exception $e) 
{
    echo 'Error: ' . $e->getMessage();
}

Weitere Informationen zur Verwendung von Twilio in Azure mit PHP finden Sie unter Tätigen eines Telefonanrufs mit Twilio in einer PHP-Anwendung in Azure.For additional information about using Twilio in Azure with PHP, see How to Make a Phone Call Using Twilio in a PHP Application on Azure.

Gewusst wie: Verwenden zusätzlicher Twilio-DiensteHow to: Use Additional Twilio Services

Zusätzlich zu den hier gezeigten Beispielen bietet Twilio webbasierte APIs, mit denen Sie zusätzliche Twilio-Funktionen in Ihrer Azure-Anwendung verwenden können.In addition to the examples shown here, Twilio offers web-based APIs that you can use to leverage additional Twilio functionality from your Azure application. Ausführliche Informationen finden Sie in der Twilio API documentation (Twilio API-Dokumentation).For full details, see the Twilio API documentation.

Nächste SchritteNext Steps

Nachdem Sie nun mit den Grundlagen des Twilio-Dienstes vertraut sind, finden Sie unter diesen Links weitere Informationen:Now that you've learned the basics of the Twilio service, follow these links to learn more: