samedi 9 avril 2011

Karotz API Web - Webcam


On se base sur le tuto précédent pour les acquis.

1 - Votre site web fait appel à la méthode suivante pour déclencher la prise de photo :

http://www.karotz.com/api/karotz/webcam?action=photo&url=http://mywebsite/my_photo.php&interactiveid=xxx

L'url de call-back indiquée en paramètre va donc recevoir l'image envoyée par le Karotz.

2 - Installer le script suivant my_photo.php sur votre site : Zip
<?php  define('MODE_DEBUG', true);

 # Log de quelques infos...
 #
 if (MODE_DEBUG) {
if ($fh = fopen('_log.txt', 'a')) {
fwrite($fh, 'Params (key/value) : ['.PHP_OS.']'.PHP_EOL);
fwrite($fh, '--$_REQUEST--'.PHP_EOL);
foreach ($_REQUEST as $key => $value) fwrite($fh, $key.' = '.$value.PHP_EOL);
if (!empty($_FILES)) {
fwrite($fh, '--$_FILES--'.PHP_EOL);
foreach ($_FILES as $key => $value) fwrite($fh, $key.' = '.$value.PHP_EOL);
if (isset($_FILES['sendfile'])) foreach ($_FILES['sendfile'] as $key => $value) fwrite($fh, $key.' = '.$value.PHP_EOL);
}
fclose($fh);
}
 }

 # Quelques tests au cas où...
 #
 if (empty($_FILES)) exit;
 if ($_FILES['sendfile']['error'] !== UPLOAD_ERR_OK) exit; # !== not !=
 if ($_FILES['sendfile']['type'] != 'image/jpeg') exit;
 if ($_FILES['sendfile']['size'] <= 0) exit;

 # Le répertoire de destination
 # Le nom donné à l'image reçue
 #
 $udir  = 'my_dir/';
 $ufile = $udir.basename( $_FILES['sendfile']['name']);

 # Pas besoin de tester le résultat... sauf pour le logger
 #
 move_uploaded_file($_FILES['sendfile']['tmp_name'], $ufile);
?>
  • L'image est alors disponible au format jpeg (640x480, 96dpi, 24bits) dans le répertoire my_dir.
  • On pourra nommer les images à sa convenance en modifiant la variable $ufile.
Notes : Les variables transmises au script lors du callback sont les suivantes :

$_POST
filename = snapshot_2011_04_21_22_40_17.jpg
interactiveid = bfe84c04-8396-4b71-953d-3630a6963e2b
correlationid = fb68d2b9-784f-46c7-9e65-0b8252d4097e
uuid = fb68d2b9-784f-46c7-9e65-0b8252d4097e
submit = send

$_FILES
sendfile = Array
name = snapshot_2011_04_09_22_40_17.jpg
type = image/jpeg
tmp_name = /var/log/tmp/phpEZiVvU
error = 0
size = 31445

L'interactiveID récupéré permet alors de faire le lien avec l'utilisateur qui a déclenché la prise de vue.

Aucun commentaire:

Enregistrer un commentaire