This is an old revision of the document!


Ukázky použití Odorik API

Více informací o našem API můžete získat na stránce Odorik.cz API.

odeslání SMS

PHP

<?php
$authentication = array("user" => "pepa", "password" => "zdepa");
$sms = array( "sender" => "Odorik.cz", "recipient" => "00420999123456789",
              "message" => "Testovaci SMS zprava pres Odorik.cz API");
 
$cc = curl_init("https://www.odorik.cz/api/v1/sms");
curl_setopt($cc, CURLOPT_RETURNTRANSFER, true);
curl_setopt($cc, CURLOPT_POSTFIELDS, $authentication + $sms);
$response = curl_exec($cc);
 
if (strstr($response, "successfully_sent") == false) {
  echo "SMS zpravu se nepodarilo odeslat. Duvod: " . $response;
}
 
curl_close($cc);
?>

Ruby

require 'net/http'
require 'uri'
#starší verze ruby vyžaduje navíc řádek
#require 'net/https'
 
authentication = { 'user' => 'pepa', 'password' => 'zdepa' }
sms = { 'sender' => 'Odorik.cz', 'recipient' => '00420999123456789',
        'message' => 'Testovaci SMS zprava pres Odorik.cz API' }
 
uri = URI.parse('https://www.odorik.cz/api/v1/sms')
 
request = Net::HTTP::Post.new(uri.path)
request.form_data = authentication.merge(sms)
 
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
response = http.start {|http| http.request(request)}
 
unless response.body.include? 'successfully_sent'
  puts "SMS zpravu se nepodarilo odeslat. Duvod: #{response.body}"
end

objednání zpětného volání

Python

# -*- coding: utf-8 -*-
"""
Created on Wed Nov 23 15:13:23 2011
 
# Author:  Michal Sládeček, sla29006 <@t> spseol <d.t> cz
# License: GNU/GPL
 
"""
import urllib
 
 
#####konfigurace######
user=""          #api user
passw=""         #api pass
linka=""         #linka
#######################
mc=input("Moje cislo: ")  ##pokud chcete nechat cislo defaultne nastavene okomentujte tento radek
# a odkomentujte radek pod timto a dopiste cislo
#mc="" #moje cislo defaultne
kc=input("Komu volam: ")
 
aut = urllib.urlencode({'user': user, 'password': passw})
 
f=urllib.urlopen("https://www.odorik.cz/api/v1/balance?"+aut+"") ##odeslani udaju pak se zacne volat
print "Aktualni stav kreditu je: "+f.read()+"Kc"
 
##odeslani udaju pak se zacne volat
daut = urllib.urlencode({'caller': mc, 'recipient': kc, 'line': linka})
 
##dame to vse dosebe a zavolame
parms=aut+"&"+daut
 
c=urllib.urlopen("https://www.odorik.cz/api/v1/callback", parms) ##odeslani udaju pak se zacne volat
print c.read()
print "################################################"
print "################################################"
print u"Volám..."
 
a=input("") 

Ruby

#!/usr/bin/env ruby
# encoding: UTF-8
require 'net/http'
require 'uri'
#starší verze ruby vyžaduje navíc řádek
#require 'net/https'
 
 
authentication = { 'user' => '300116', 'password' => 'sipheslo' }
 
callback = { 'caller' => '*300116', 'recipient' => ARGV[0] }
uri = URI.parse('https://www.odorik.cz/api/v1/callback')
 
request = Net::HTTP::Post.new(uri.path)
request.form_data = authentication.merge(callback)
 
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
response = http.start {|http| http.request(request)}
 
unless response.body.include? 'callback_ordered'
  puts "zpětné volání nešlo objednat. Důvod: #{response.body}"
end

soubor si uložím do $HOME/bin a poté přidám bashrc řádek export PATH=$PATH:$HOME/bin. Pak stačí do konzole napsat v cislo,kde v je název mého skriptu a cislo je číslo, s kterým chci spojit.

stažení nahrávek hovorů

PHP

Script below downloads all available recordings (stored at Odorik.cz) recordings from yeasterday. To be run each night.

<?php
$auth = array('user' => 'xxxxxx',
              'password' => 'yyyyyyy');
 
function calls_timespan_params() {
  date_default_timezone_set('Europe/Prague');
 
  $now = date_create('now');
  $yesterday = date_modify($now, '-1 day');
 
  $from = date_create(date_format($yesterday, 'Y-m-d') . ' 00:00:00');
  $to = date_create(date_format($yesterday, 'Y-m-d') . ' 23:59:59');
 
  return array( 'from' => date_format($from, 'c'),
                'to' => date_format($to, 'c'));
}
 
function download($url) {
  $curl = curl_init();
  curl_setopt($curl, CURLOPT_URL, $url);
  curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
  $data = curl_exec($curl);
  curl_close($curl);
 
  return $data;
}
 
function download_recording($call, $auth) {
  $fname = filename($call);
 
  if (file_exists($fname)) {
    fwrite(STDERR, "file " . $fname . " (call " . $call->id . ") exists, skipping\n");
    return(-1);
  }
 
  $auth_qs = http_build_query($auth);
  $data = download('https://www.odorik.cz/api/v1/call_recordings/' . $fname . '?' . $auth_qs);
 
  $file = fopen($fname, "w+");
  fputs($file, $data);
  fclose($file);
}
 
function filename($call) {
  #var_dump($call);
  #exit(0);

  #return $call->id . '.' . $call->recording->format;
  return $call->date . '---' . $call->direction . '---' . $call->source_number . '---' . $call->destination_number . '.' . $call->recording->format;
}
 
$qs = http_build_query(array_merge($auth, calls_timespan_params()));
$calls = json_decode(download("https://www.odorik.cz/api/v1/calls.json?" . $qs));
 
foreach($calls as $call) {
  if ($call->recording != NULL) {
    download_recording($call, $auth);
  }
}
?>

použití nástroje curl

Objednání zpětného volání

Volat se bude z čísla 00420608424631 na číslo 00420800123456

curl -X POST https://www.odorik.cz/api/v1/callback -d user=<user> -d password=<password> -d caller=00420608424631 -d recipient=00420800123456

Vypíše probíhající hovory

curl -X GET https://www.odorik.cz/api/v1/active_calls.json -d user=<user> -d password=<password>

Zavěsí jeden probíhající hovor

curl -X DELETE https://www.odorik.cz/api/v1/active_calls/3.json -d user=<user> -d password=<password>

Oba výše uvedené příklady vychází z dokumentace pro právě probíhající hovory. Hodnoty <user> a <password> slouží pro autentizaci.

Javascipt

Webová aplikace využívající API zdrojových kódů a dokumentace. Aplikaci si můžete upravit a umístit třeba na svůj web, nebo ji spouštět jen lokálně.

Poznámka: V případě aplikace uložené na internetu má https význam jen v ověření domény, aby vám náhodou nemohl nějaký útočník podvrhnout jinou než originální aplikaci. Aplikace samotná vždy komunikuje jen pomocí https přes API.

Vlákno na fóru: http://forum.odorik.cz/viewtopic.php?f=19&t=3531&p=27772

 
api/ukazky.1500470365.txt.gz · Last modified: 2017/07/19 15:19 (external edit)