CallBack API - chyba

Jak ovládat Odorik a používat služby pomocí speciálních programů a aplikací.
Odpovědět
tonda
Příspěvky: 53
Registrován: úte 19. bře 2013 22:03:29

CallBack API - chyba

Příspěvek od tonda »

Dobrý den,

pokud se volá API pro objednání CallBack s přihlášením API jménem a heslem celého účtu (ne konkrétní linky) a zároveň je parametr line prázdný, pak je vráceno callback_ordered, což není pravda, protože Odorik neví, ze které linky je CallBack objednán a zpět nezavolá.

Příklad požadavku:

Kód: Vybrat vše

https://www.odorik.cz/api/v1/callback(POST)
param: user=[api jmeno]
param: password=[api heslo]
param: caller=00420723xxxxxx
param: recipient=+420607xxxxxx
param: line=
a odpovědi:

Kód: Vybrat vše

Returned http status: 200
Response: callback_ordered 
Očekával bych vrácení chyby.
Uživatelský avatar
Largon
Příspěvky: 448
Registrován: pon 07. lis 2011 10:14:09

Re: CallBack API - chyba

Příspěvek od Largon »

Dobrý den,
díval jsem se na to a opravdu jsme tam měli chybu. Náš systém se totiž měl v takovém případě chovat jako v situaci, kdy parametr line vůbec předán není a měl si linku vybrat sám. Takže callback by byl uskutečněn.

Nicméně souhlasím s vámi, že v takovém případě, kdy je předán parametr bez jakékoliv hodnoty, je lepší vrátit chybovou zprávu. Provedl jsem patřičné změny, aby na se na tyto požadavky nyní vracela chyba invalid_line.

Díky za nahlášení problému.
Uživatelský avatar
Pitomec
Příspěvky: 2580
Registrován: ned 27. lis 2011 21:26:33
Bydliště: Brno

Re: CallBack API - chyba

Příspěvek od Pitomec »

Dotaz ke zpětnému volání: Pro spojení hovoru využívám netovou aplikaci v Androidu. Je nutné, aby po spojení hovoru, při jeho trvání, byl internet stále aktivní? Občas se mně totiž stane, že pro připojení k netu a následnému objednání hovoru použiji WiFi, a když se pak s telefonem vzdálím z dosahu WiFi, tak hovor spadne.
Obrázek
Uživatelský avatar
Largon
Příspěvky: 448
Registrován: pon 07. lis 2011 10:14:09

Re: CallBack API - chyba

Příspěvek od Largon »

Nemělo by to souviset. Internetové spojení je potřeba pouze k odeslání požadavku na vytvoření callbacku, samotný hovor už je pak klasické GSM.
Uživatelský avatar
Pitomec
Příspěvky: 2580
Registrován: ned 27. lis 2011 21:26:33
Bydliště: Brno

Re: CallBack API - chyba

Příspěvek od Pitomec »

Taky si to myslím a možná je to jenom souhra náhod. Budu sledovat a kdyžtak se ozvu :-)
Obrázek
BobS
Příspěvky: 12
Registrován: úte 11. pro 2012 21:23:26

Re: CallBack API - chyba

Příspěvek od BobS »

Dobrý den,
mám na svém serveru naprogramovaný malý PHP skript s využitím API pro callback (viz. níže).
Vše mi dlouhodobě fungovalo, ale před pár týdny to fungovat přestalo.
Při zadání správného formátu čísla, skript vrací prázdnou hodnotu "response" a callback se neobjedná.
Při zadání špatného formátu čísla však vrací standardní chybové hlášení (response) "špatný formát čísla", takže je vidět, že API můj požadavek normálně zpracovává.

Netušíte někdo?
Děkuji!

Kód: Vybrat vše

<?php
$authentication = array("user" => "UZIVATEL", "password" => "HESLO");
$callback = array( "caller" => "VOLAJICI_CISLO", "recipient" => "VOLANE_CISLO",
              "line" => "ODORIK_LINKA");
 
$cc = curl_init("https://www.odorik.cz/api/v1/callback");
curl_setopt($cc, CURLOPT_RETURNTRANSFER, true);
curl_setopt($cc, CURLOPT_POSTFIELDS, $authentication + $callback);
$response = curl_exec($cc);

if (strstr($response, "callback_ordered") == false) {
  echo "Callback se nepodarilo objednat. Duvod: " . $response;
}
else {
  echo "Očekávejte hovor: " . $response;
}
 
curl_close($cc);
?>
Uživatelský avatar
Largon
Příspěvky: 448
Registrován: pon 07. lis 2011 10:14:09

Re: CallBack API - chyba

Příspěvek od Largon »

BobS píše:Dobrý den,
mám na svém serveru naprogramovaný malý PHP skript s využitím API pro callback (viz. níže).
Vše mi dlouhodobě fungovalo, ale před pár týdny to fungovat přestalo.
Při zadání správného formátu čísla, skript vrací prázdnou hodnotu "response" a callback se neobjedná.
Při zadání špatného formátu čísla však vrací standardní chybové hlášení (response) "špatný formát čísla", takže je vidět, že API můj požadavek normálně zpracovává.

Netušíte někdo?
Děkuji!

Kód: Vybrat vše

<?php
$authentication = array("user" => "UZIVATEL", "password" => "HESLO");
$callback = array( "caller" => "VOLAJICI_CISLO", "recipient" => "VOLANE_CISLO",
              "line" => "ODORIK_LINKA");
 
$cc = curl_init("https://www.odorik.cz/api/v1/callback");
curl_setopt($cc, CURLOPT_RETURNTRANSFER, true);
curl_setopt($cc, CURLOPT_POSTFIELDS, $authentication + $callback);
$response = curl_exec($cc);

if (strstr($response, "callback_ordered") == false) {
  echo "Callback se nepodarilo objednat. Duvod: " . $response;
}
else {
  echo "Očekávejte hovor: " . $response;
}
 
curl_close($cc);
?>
Dobrý den,
o žádných problémech s callbackem momentálně nevíme. Zkuste mi poslat na karas (at) odorik.cz, o jaký uživatelský účet se jedná a kdy jste to zkoušel. Podívám se, jestli něco neobjevím v logu.
marekzavadil
Příspěvky: 16
Registrován: pát 02. bře 2012 12:05:31

Re: CallBack API - chyba

Příspěvek od marekzavadil »

Nechce se mi zakladat dalsi vlakno na CallBack API - ale podle me je chyba, ze v pripade uspechu je odpoved serveru pouze "Response: callback_ordered"

Podle me by bylo dobre, kdyby byla dostupna informace o CALL ID.

Cilem je aby slo nasledne overit, zda-li se hovor uskutecnil.
Uživatelský avatar
Largon
Příspěvky: 448
Registrován: pon 07. lis 2011 10:14:09

Re: CallBack API - chyba

Příspěvek od Largon »

marekzavadil píše:Nechce se mi zakladat dalsi vlakno na CallBack API - ale podle me je chyba, ze v pripade uspechu je odpoved serveru pouze "Response: callback_ordered"

Podle me by bylo dobre, kdyby byla dostupna informace o CALL ID.

Cilem je aby slo nasledne overit, zda-li se hovor uskutecnil.
Souhlas, že by to tak bylo určitě lepší, ale se současnou architekturou našich aplikací to není technicky možné. API jen posílá požadavek na callback a už nečeká na žádnou odpověď. Navíc CALL_ID je k hovoru přiřazeno až po jeho dokončení, kdy dochází k zaúčtování.
Odpovědět