クイックスタート|Tropo Web API

番号を尋ねる

   

TropoはIVRの実装のための、シンプルな方法にいくつか対応しています。 例えば、ユーザから数桁の入力をを得ることができます。(askの他の例と同様に、これはライブラリを必要とします。) PHPをご使用であれば、Limonadeフレームワークを含む場合は、 http://www.example.com/test?uri=startのようにリソース名を含める為に、URLの終わりに定義する必要があります。

  サンプル
require 'tropo-webapi-ruby'
require 'sinatra'

post '/index.json' do
  
  t = Tropo::Generator.new
  
  t.ask :name => 'digit', 
        :timeout => 60, 
        :say => {:value => "0から9までの番号を選んでください。"},
        :choices => {:value => "[1 DIGIT]"}
  
  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][:digit][:value]
  
  t.say(:value => "選んだ番号は、 " + 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("0から9までの番号を選んでください。");
    var choices = new Choices("[1 DIGIT]");

    // (choices, attempts, bargein, minConfidence, name, recognizer, required, say, timeout, voice);
   
    tropo.ask(choices, null, null, null, "digit", null, null, say, 60, 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("選んだ番号は、 " + answer);
      
      res.send(TropoJSON(tropo));
 });

app.listen(8000);
console.log('Server running on port :8000');

<?php

require 'tropo.class';
require 'lib/limonade';

dispatch_post('/start', 'app_start');
function app_start() {

   $tropo = new Tropo();

   $options = array("choices" => "[1 DIGIT]", "name" => "digit", "timeout" => 60);
 
   $tropo->ask("0から9までの番号を選んでください。", $options);

   $tropo->on(array("event" => "continue", "next" => "hello_world?uri=continue"));

   $tropo->RenderJson();
}

dispatch_post('/continue', 'app_continue');
function app_continue() {

   $tropo = new Tropo();
   @$result = new Result();
   
   $answer = $result->getValue();
   
   $tropo->say("選んだ番号は、 " . $answer);
   
   $tropo->RenderJson();

}

run();

?>
from itty import *
from tropo import Tropo, Result

@post('/index.json')
def index(request):

   t = Tropo()

   t.ask(choices = "[1 DIGIT]", timeout=60, name="digit", say = "0から9までの番号を選んでください。")	
   
   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("選んだ番号は、 " + answer)
   
   return t.RenderJson()
   
run_itty(server='wsgiref', host='0.0.0.0', port=8888)

 

ユーザに4桁の番号を入力してほしい場合は、質問の内容を置き換えてみてください。 例えば、

「4桁の暗証番号」を入力して欲しい場合は、[1 DIGIT][4 DIGITS]に置き換えます。

 

Tropoがユーザーのインプットの取得を可能にするシンプルな構文は簡単に、「シンプルグラマ」と呼ばれています。 シンプルグラマは基本的に必須というわけではありませんが、次に説明するように、かなり包括的なものです。

 

補足資料

 

シンプルグラマについてより知りたい方は、シンプルグラマでの処理をご覧ください。