Bonsoir,
Après avoir reçu le fichier en message privé, et après une analyse rapide du problème, pour cela j'ai rajouté la commande cURL --trace-ascii $$trace dans l'action Insérer depuis URL qui doit normalement récupérer l'image. Il s'avère qu'il y a une redirection temporaire des requêtes de votre serveur (et cela doit être dû à l'architecture de FileMaker Cloud), information que l'on voit en lisant le contenu de la variable $$trace :
Hors, comme je l'ai expliqué précédemment, la récupération d'un fichier via la Data API de FileMaker Server est sécurisé, le lien est entre autre temporaire. Hors comme il y a une redirection de la requête pour récupérer le fichier et que le système veut être sûr que vous êtes bien la personne destinataire dudit fichier il génère un cookie, mais voilà FileMaker ne gère pas les cookies comme un navigateur. Il faut donc dire deux choses à FileMaker dans la requête de récupération de fichier :
La première qu'il doit suivre les redirections, le fameux code HTTP 302, et pour cela il faut ajouter la commande cURL -L ;
La seconde qu'il doit stocker le cookie du premier serveur pour le retransmettre au second, et pour cela nous allons utiliser une variable temporaire (que je nomme ici $cookie) et utiliser la commande cURL --cookie-jar $cookie
Et nous obtenons donc le script suivant :
Gestion erreurs [ Oui ]
Définir variable [ $login ; Valeur: Base64EncodeRFC ( 4648 ; "LOGIN:MOTDEPASSE" ) ]
Définir variable [ $url ; Valeur: "https://MONSERVEUR/fmi/data/vLatest/databases/MABASE/" ]
#
Définir variable [ $url.endpoint ; Valeur: $url & "sessions/" ]
Définir variable [ $curl ; Valeur: "-X POST " & "-H " & Citation ( "Authorization: Basic " & $login ) & " " & "-H " & Citation ( "Content-type: application/json" ) & " " & "-d {}" ]
Insérer depuis URL [ Sélectionner ; Avec boîte de dialogue: Non ; Cible: $resultat ; $url.endpoint ; Options cURL: $curl ]
#
Définir variable [ $token ; Valeur: JSONGetElement ( $resultat ; "response.token" ) ]
#
Définir variable [ $url.endpoint ; Valeur: $url & "layouts/MONMODELE/records" ]
Définir variable [ $curl ; Valeur: "-X GET " & "-H " & Citation ( "Authorization: Bearer " & $token ) & " " & "-H " & Citation ( "Content-type: application/json" ) & " " & "-d {}" ]
Insérer depuis URL [ Sélectionner ; Avec boîte de dialogue: Non ; Cible: $resultat ; $url.endpoint ; Options cURL: $curl ]
#
Définir variable [ $image ; Valeur: JSONGetElement ( $resultat ; "response.data[0].fieldData.image" ) ]
#
Nouvel enreg./requête
Insérer depuis URL [ Sélectionner ; Avec boîte de dialogue: Non ; Cible: TABLE::Conteneur ; $image ; Options cURL: "-L " & "--cookie-jar $cookie " & "--trace-ascii $$trace" ]
#
# Deconnexion
Définir variable [ $url.endpoint ; Valeur: $url & "sessions/" & $token ]
Définir variable [ $curl ; Valeur: "-X DELETE " ]
Insérer depuis URL [ Sélectionner ; Avec boîte de dialogue: Non ; Cible: $resultat ; $url.endpoint ; Options cURL: $curl ]
#
Fin de script [ Résultat de texte: ]
Les puristes me pardonnerons mes approximations…
Bonjour,
Au lieu d'utiliser une rubrique conteneur, j'utiliserai un bloc texte (contenant au moins un caractère espace) et selon le contexte lui faire changer sa couleur de fond…
Bonsoir,
Avez-vous la dernière mise à jour de FileMaker Pro 14 ? À savoir FileMaker Pro 14.0.6…
Et j'ai trouvé cette note technique dans la base de connaissance de FileMaker, qu'en pensez-vous ? https://support.filemaker.com/s/answerview?language=en_US&anum=9827