require 'tropo-webapi-ruby'
require 'sinatra'
post '/index.json' do
t = Tropo::Generator.new
t.ask :name => 'color',
:timeout => 10,
:attempts => 3,
:say => {:value => "What's your favorite color? Choose from red, blue or green."},
:choices => {:value => "red, blue, green"}
t.on :event => 'continue', :next => '/continue.json'
t.response
end
post '/continue.json' do
v = Tropo::Generator.parse request.env["rack.input"].read
t = Tropo::Generator.new
answer = v[:result][:actions][:color][:value]
t.say(:value => "You said " + answer)
t.response
end
var http = require('http');
var express = require('express');
var app = express.createServer();
var tropo_webapi = require('tropo-webapi');
// Required to process the HTTP body.
// req.body has the Object while req.rawBody has the JSON string.
app.configure(function(){
app.use(express.bodyParser());
});
app.post('/', function(req, res){
var tropo = new TropoWebAPI();
var say = new Say("What's your favorite color? Choose from red, blue or green.");
var choices = new Choices("red, blue, green");
// (choices, attempts, bargein, minConfidence, name, recognizer, required, say, timeout, voice);
tropo.ask(choices, 3, null, null, "color", null, null, say, 10, null);
tropo.on("continue", null, "/continue", true);
res.send(TropoJSON(tropo));
});
app.post('/continue', function(req, res){
var tropo = new TropoWebAPI();
var answer = req.body['result']['actions']['value'];
tropo.say("You said " + answer);
res.send(TropoJSON(tropo));
});
app.listen(8000);
console.log('Server running on port :8000');
<?php
require 'tropo.class.php';
require 'lib/limonade.php';
dispatch_post('/start', 'app_start');
function app_start() {
$tropo = new Tropo();
$options = array("choices" => "red, blue, green", "name" => "color", "attempts" => 3, "timeout" => 10);
$tropo->ask("What's your favorite color? Choose from red, blue or green.", $options);
$tropo->on(array("event" => "continue", "next" => "hello_world.php?uri=continue"));
$tropo->RenderJson();
}
dispatch_post('/continue', 'app_continue');
function app_continue() {
$tropo = new Tropo();
@$result = new Result();
$answer = $result->getValue();
$tropo->say("You said " . $answer);
$tropo->RenderJson();
}
run();
?>
from itty import *
from tropo import Tropo, Result
@post('/index.json')
def index(request):
t = Tropo()
t.ask(choices = "red, blue, green", attempts=3, timeout=10, name="color", say = "What's your favorite color? Choose from red, blue or green.")
t.on(event = "continue", next ="/continue")
return t.RenderJson()
@post("/continue")
def index(request):
r = Result(request.body)
t = Tropo()
answer = r.getValue()
t.say("You said " + answer)
return t.RenderJson()
run_itty(server='wsgiref', host='0.0.0.0', port=8888)