yana-server
yana-server copied to clipboard
Developpement plugin - questions
Salut Idleman, ça y est, je m'y suis mis, yana est installée, paramétrée. Elle ouvre et ferme mes volets a la demande, la lumière toussa toussa.
Je vais donc commencer a developper les petits plugin qui me conviennent, et j'en ai commencé un tout simple qui m'indique le nombre de fan de ma page facebook.
Pour le moment, j'ai créé la page de configuration (token, id de la page facebook etc...) J'interroge facebook et je reçois le nombre de fan, mais :
- comment le faire dire à Yana ? -> ce que j'ai compris pour le moment :
- Il faut ajouter des fonctions aux hook action_post_case et vocal_command ma fonction vocal_command defini la phrase
function facebooklike_plugin_vocal(){
global $conf;
$response['commands'][] = array(
'command'=>$conf->get('VOCAL_ENTITY_NAME').' on a combien de fan',
'callback'=>'vocalinfo_give_me_fan',
'confidence'=>0.8);
}
Mais j'ai vu soit un callback, soit un url qui appelle la fonction suivante
function vocalinfo_give_me_fan($text,$confidence,$parameters){
global $conf;
$cli = new Client();
$cli->connect();
$nb_fan = get_nbfan();
$cli->talk("Nous avons".$nb_fan."fans sur la page");
$cli->disconnect();
}
Si j'ajoute les hook tels que suit
Plugin::addHook("action_post_case", "vocalinfo_give_me_fan");
Plugin::addHook("vocal_command", "facebooklike_plugin_vocal");
Yana répond "Nous avons fans sur la page" quelque soit la question que je lui pose
J'ai cru comprendre qu'il fallait un fonction intermediaire de type action
function facebooklike_action() {
global $_,$conf;
switch($_['action']){
case "plugin_facebooklike":
echo 1;
break;
}
}
Plugin::addHook("action_post_case", "facebooklike_action");
Mais je ne vois pas comment envoyer l'action au préalable
J'aimerais aussi lancer une fonction dans la cron de yana pour mettre à jour le nombre de fan et lui faire dire "youpi, on a passer une tranche de 100 fans supplementaire !" d'elle meme quand c'est le cas.
Bref j'ai des question et j'en poserais probablement d'autres par la suite, mais mon pavé est déjà pas mal conséquent :)
Salut Locho, et bonne année :D !!! Tu n'as pas besoin de passer par les actions si tu specifie dircet le nom de la fonction tu peux te contenter d'un
function facebooklike_plugin_vocal(){
global $conf;
$response['commands'][] = array(
'command'=>$conf->get('VOCAL_ENTITY_NAME').' on a combien de fan',
'callback'=>'vocalinfo_give_me_fan',
'confidence'=>0.8);
}
function vocalinfo_give_me_fan($text,$confidence,$parameters){
global $conf;
$cli = new Client();
$cli->connect();
$nb_fan = get_nbfan();
$cli->talk("Nous avons".$nb_fan."fans sur la page");
$cli->disconnect();
}
Plugin::addHook("vocal_command", "facebooklike_plugin_vocal");
En gros le callback exécute direct la fonction sans passer par une action http.
Pour lancer une action via un cron tu dois utiliser le hook cron
Plugin::addHook("cron", "mafonctionyoupi");
Super ! Par contre pour récuperer la commande vocale côté serveur, il fallait préciser &$response,$actionUrl dans les parametres de la fonction vocale
function facebooklike_plugin_vocal(&$response,$actionUrl){
global $conf;
$response['commands'][] = array(
'command'=>$conf->get('VOCAL_ENTITY_NAME').' on a combien de fan',
'callback'=>'vocalinfo_give_me_fan',
'confidence'=>0.8);
}
Par contre je ne récupère pas la commande dans yana4All :(
Précisions La cron ça marche super - La commande vocal n'apparait pas dans yana4all, mais elle existe bien dans le client yana windows.
Tu me dis si je n'aurais pas dû J'ai ajouté la partie concernant les hook dans la doc yana là -> http://idleman.fr/yana/doc/developper/index.php?page=hook_api Je préfère garder des notes, donc autant qu'elles servent à tous le monde.
Ah oui, je viens de m'apercevoir que je n'avais même pas répondu : MEILLEURS VŒUX !
Bon j'ai pas eu énorme de temps, mais en passant, j'ai regardé yana windows, la commande vocale est bien presente, mais elle ne repond pas. Dans les logs, j'ai la commande reconnue, mais elle appelle URL qui est vide. Demain je testerais en utilisant l'autre methode vocale pour voir si yana windows repond bien, et si ça corrige le souci de yana4all android. -> il y a des chances pour que ce soit ça etant donné le retour de GET_SPEECH_COMMAND qui à l'air d'etre utilisé pour recuperer les commandes (je n'ai pas regardé les sources, seulement celles du client linux de maditnerd qui m'a l'air vraiment sympa)