Sha256: 126eca50081c67867d410814e8dc6d2d181140e856b1c5571b09ceb5203c9a7d

Contents?: true

Size: 1.67 KB

Versions: 1

Compression:

Stored size: 1.67 KB

Contents

.. _usage-twiml:

.. module:: twilio.twiml

==============
TwiML Creation
==============

TwiML creation begins with the :class:`Response` verb.
Each successive verb is created by calling various methods on the response,
such as :meth:`say` or :meth:`play`.
These methods return the verbs they create to ease creation of nested TwiML.
To finish, call the :meth:`toxml` method on the :class:`Response`,
which returns raw TwiML.

.. code-block:: python

    require 'twilio-ruby'

    Twilio::TwiML::Response.new do |r|
        r.Say "Hello"
    end.text

.. code-block:: xml

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

The verb methods (outlined in the :doc:`complete reference </api/twiml>`)
take the body (only text) of the verb as the first argument.
All attributes are keyword arguments.

.. code-block:: python

    require 'twilio-ruby'

    Twilio::TwiML::Response.new do |r|
        r.Play "https://api.twilio.com/cowbell.mp3", :loop => 5
    end.text

.. code-block:: xml

    <?xml version="1.0" encoding="utf-8"?>
    <Response>
        <Play loop="3">https://api.twilio.com/cowbell.mp3</Play>
    <Response>

Python 2.6+ added the :const:`with` statement for context management.
Using :const:`with`, the module can *almost* emulate Ruby blocks.

.. code-block:: python

    require 'twilio-ruby'

    Twilio::TwiML::Response.new do |r|
        r.Say "hello"
        r.Gather :finish_on_key => 4 do |g|
            g.Say "world"
        end
    end.text

which returns the following

.. code-block:: xml

    <?xml version="1.0" encoding="utf-8"?>
    <Response>
      <Say>Hello</Say>
      <Gather finishOnKey="4"><Say>World</Say></Gather>
    </Response>

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
twilio-ruby-3.11.0 docs/usage/twiml.rst