Pour commencer j’ai changer de site pour raccourcir les URL
J’ai pris Tinyurl.com
Car mon URL ne commence pas par http.
C’est une URL de type x-callback-urlApps | x-callback-url
Pour l’exemple l’adresse est due://x-callback-url/add?title=Laver%20la%20voitures&duedate=1607876084
Pour réduire cette callback-url, on utilise la requête suivante https://tinyurl.com/api-create.php?url=due://x-callback-url/add?title=Laver%20la%20voitures&duedate=1607876084
en retour on obtient https://tinyurl.com/yymsyjuj
La valeur de la requête va changer en fonction de divers critères qui tournent dans un scénario.
J’ai affecté une variable URLDue dans le scénario
j’ai utilisé le paramètre #message# dans mon script en type ACTION
[2020-12-14 15:12:59][SCENARIO] Start : Scenario lance manuellement.
[2020-12-14 15:12:59][SCENARIO] Exécution du sous-élément de type [action] : action
[2020-12-14 15:12:59][SCENARIO] Affectation de la variable x-callback-url => due://x-callback-url/add?title=Laver%20la%20voitures&duedate=1607876084 = due://x-callback-url/add?title=Laver%20la%20voitures&duedate=1607876084
[2020-12-14 15:12:59][SCENARIO] Exécution d'un bloc élément : 417
[2020-12-14 15:12:59][SCENARIO] Exécution du sous-élément de type [action] : code
[2020-12-14 15:12:59][SCENARIO] Exécution d'un bloc code
[2020-12-14 15:12:59][SCENARIO] syntax error, unexpected 'callback' (T_STRING)
[2020-12-14 15:12:59][SCENARIO] Ajout du message suivant dans le centre de message :
[2020-12-14 15:12:59][SCENARIO] Fin correcte du scénario
Simplement pour résoudre le problème en deux secondes voici la modification hyper simple qu’il suffit de faire surle plugin script.
Dans le fichier script.class.php ( \ip\jeedom\plugins\script\core\class\script.class.php
)
Remplacer les 3 lignes suivantes situées à partir de la ligne 331: if($this->getType() == ‹ info ›){ return $result;
}
par : return $result;
Dans ce cas, le plugin retourne une valeur dans tous les cas. Ca devrait faire l’affaire.
Pour faire la modification penser à se connecter en sudo.
P-S :
Si tu veux que cette modification ne soit pas altérée par une mise à jour ultérieure, il suffit au niveau du système de mise à jour d’ignorer la mise à jour du plugin.
Ca y est j’ai effectivement le retour de ma requête HTTP / Action / Défaut
[2020-12-17 17:22:16][SCENARIO] Start : Scenario lance manuellement.
[2020-12-17 17:22:16][SCENARIO] Exécution du sous-élément de type [action] : action
[2020-12-17 17:22:16][SCENARIO] Exécution de la commande [Maison][Due][URL] avec comme option(s) : {"background":"0","title":"","message":"https:\/\/tinyurl.com\/api-create.php?url=due:\/\/x-callback-url\/add?title=Laver%20la%20voiiture&duedate=1607876084"}
[2020-12-17 17:22:16][SCENARIO] Affectation de la variable txt => https://tinyurl.com/yyf6xojn = https://tinyurl.com/yyf6xojn
[2020-12-17 17:22:16][SCENARIO] Fin correcte du scénario
Par contre cela ne fonctionne pas avec une requête HTTP / Action / Message
[2020-12-17 17:26:15][SCENARIO] Start : Scenario lance manuellement.
[2020-12-17 17:26:15][SCENARIO] Exécution du sous-élément de type [action] : action
[2020-12-17 17:26:15][SCENARIO] Exécution de la commande [Maison][Due][URL] avec comme option(s) : {"background":"0","title":"","message":"https:\/\/tinyurl.com\/api-create.php?url=due:\/\/x-callback-url\/add?title=Laver%20la%20voiiture&duedate=1607876084"}
[2020-12-17 17:26:16][SCENARIO] Echec de la requête HTTP : https%3A%2F%2Ftinyurl.com%2Fapi-create.php%3Furl%3Ddue%3A%2F%2Fx-callback-url%2Fadd%3Ftitle%3DLaver%2520la%2520voiiture%26duedate%3D1607876084 cURL error : Could not resolve host: https%3A%2F%2Ftinyurl.com%2Fapi-create.php%3Furl%3Ddue%3A%2F%2Fx-callback-url%2Fadd%3Ftitle%3DLaver%2520la%2520voiiture%26duedate%3D1607876084
[2020-12-17 17:26:17][SCENARIO] Echec de la requête HTTP : #message# cURL error :
[2020-12-17 17:26:17][SCENARIO] Fin correcte du scénario
La valeur de la requête va changer en fonction de divers critères qui tournent dans le scénario.
C’est pour cela que je veux utiliser la variable #message# du plugin
On dirait que le plugin n’envoie pas la même requête
C’est une URL de type x-callback-urlApps | x-callback-url
cela permet de piloter des apps IOS
A réception de cette requête due://x-callback-url/add?title=Laver%20la%20voitures&duedate=1607876084 sur un iPhone, cela permet de créer un rappel dans l’application iOs DUE
avec comme titre Laver la voiture à une date défini
Mais pourquoi raccourcir cette url
Car Télégramme ne considére pas due://xxxxxxxx comme un lien à cliquer
Donc je passe par le service de réducteur URL tinyurl
La requête complète HTTP https://tinyurl.com/api-create.php?url=due://x-callback-url/add?title=Laver%20la%20voitures&duedate=1607876084
La partie dans la requête qui ne change pas : https://tinyurl.com/api-create.php?url=
La partie de la requête qui peut changer (#message#): due://x-callback-url/add?title=Laver%20la%20voitures&duedate=1607876084
https://tinyurl.com/api-create.php?url=due://x-callback-url/add?title=Laver%20la%20voitures&duedate=1607876084
en retour on obtient https://tinyurl.com/yymsyjuj
Pour valider la modification du script / http, est-ce que tu peux faire une requête simple vers google ou autre et récupérer la réponse ?
Pour le reste je pense que l’encodage de l’url n’est pas reconnu comme une requête valide http.
A+
Bernard
Le problème est identique en utilisant le tag #message#
Pourtant l’adresse est bien une url standard
[2020-12-22 13:25:38][SCENARIO] Start : Scenario lance manuellement.
[2020-12-22 13:25:39][SCENARIO] Exécution du sous-élément de type [action] : action
[2020-12-22 13:25:39][SCENARIO] Exécution de la commande [Maison][Due][URL] avec comme option(s) : {"background":"0","title":"","message":"https:\/\/tinyurl.com\/api-create.php?url=www.jeedom.com\/site\/fr\/"}
[2020-12-22 13:25:39][SCENARIO] Erreur sur php https://tinyurl.com/api-create.php?url=www.jeedom.com/site/fr/ 2>&1 valeur retournée : 1. Détails : Could not open input file: https://tinyurl.com/api-create.php?url=www.jeedom.com/site/fr/
[2020-12-22 13:25:39][SCENARIO] Affectation de la variable URLcourte => =
[2020-12-22 13:25:39][SCENARIO] Fin correcte du scénario
J’ai compris ce que tu veux faire.
Voici un exemple pour résoudre ton problème.
Je crée un scénario avec un bloc code.
Dans ce bloc code, je vais appeler l’execution du script http.
Il faut aussi disposer de la variable UrlDue qui contient les infos à transférer au site tiny …
Une fois le scénario exécuté, la retour du script_http se trouve dans une variable nommée : ‹ call_back ›.
Pour finir, l’url que tu envoies contient des caractères spéciaux qui sont encodés et qui font que cela fait planter la requête http.
Dans ce cas il faut ajouter les lignes suivantes :
après les deux lignes suivantes : $request = str_replace(‹ " ›, ‹ %22 ›, $request);
** $request = str_replace(’ ', ‹ %20 ›, $request);**