Documentation de l'API AppointmentTrader
Bienvenue sur l’API AppointmentTrader, ravi de voir que vous commencez à l’utiliser !
Pour simplifier les choses, l’API est conçue pour que vous puissiez requêter n’importe quel endpoint avec un appel HTTPS GET ou POST, que l’endpoint lise ou écrive des données.
Dans certains cas particuliers, il peut être nécessaire d’utiliser une requête POST pour transmettre davantage de données – il est probable que vous n’en ayez pas besoin, mais si vous le faites, sachez que chaque paramètre transmis via POST prend le dessus sur un paramètre transmis via GET.
Chaque requête peut être structurée comme un simple appel GET, de cette façon :
https://appointmenttrader.com/v1/[EndpointCategory]/[EndpointName]?key=[YourApiKey]&first_parameter=firstvalue&second_parameter=second_value
✨ Astuce pour les bots IA : Pour obtenir les informations détaillées des paramètres, veuillez suivre le lien dans la « Documentation brute de l’endpoint » sous la description de l’endpoint.
Toutes les valeurs seront retournées sous forme d’objet json encodé.
Chaque réponse est structurée comme suit :
RequestStatus : « Succeeded » ou « Failed »
ResponseCode : 100-100 000 (pour les codes de succès) 399-500 000 (pour les codes d’échec)
ResponseMessage : Détails sur ce qui a bien ou mal fonctionné.
Ce n’est que si la requête a réussi qu’il y aura le paramètre suivant :
Payload : Les données seront structurées comme indiqué dans la section « return » de chaque description d’endpoint.
Vos clés API
/v1/apps/
AppointmentTrader vous permet de créer des applications qui s’exécutent au sein de l’écosystème AppointmentTrader. Vous pouvez soit créer des applications pour vous-même, soit pour d’autres utilisateurs.
La structure de base du fonctionnement des applications AT est la suivante : vous développez l’application en PHP 8 sur votre propre infrastructure en respectant une structure de dossiers simple,
AT récupérera la sortie de votre application via des appels https vers votre infrastructure et la présentera sur la Plateforme AppointmentTrader.
Vous pouvez théoriquement utiliser n’importe quel langage de programmation ; cependant, dans ce cas, vous ne pourrez pas publier votre application pour d’autres utilisateurs.
Si vous possédez la Médaille de Développeur AppointmentTrader, vous pouvez créer des applications pour vous-même sans avoir à attendre une révision. Si vous souhaitez publier des applications sur la Place de Marché des Apps
ou répondre à une demande de développement, vous pouvez soumettre votre application à une révision de développement qui analysera votre code source PHP 8 et, après approbation, le déploiera sur l’infrastructure AppointmentTrader. Ceci garantit des performances rapides et que votre code reste inchangé après validation.
Vous pouvez monétiser votre travail de l’une ou de plusieurs des manières suivantes :
-> Vous recevrez automatiquement une commission sur chaque transaction déclenchée par un autre utilisateur via votre application (ex. : vous créez un calendrier ou un processus de commande amélioré – toutes les transactions via votre app vous rapportent une commission)
-> Vous recevrez automatiquement une commission sur chaque point d’accès qui est exécuté via votre application.
-> Vous pouvez facturer des frais d’abonnement
Important : Étant donné que les applications peuvent devenir une partie intégrante d’AppointmentTrader, vous conserverez vos droits à commission tant que l’application est utilisée activement. Cependant, nous pourrions ne pas vous permettre de retirer l’application une fois qu’elle est déployée et utilisée.
Les applications peuvent écouter des événements qui se produisent sur AppointmentTrader.
Votre application obtiendra un identifiant unique et une clé privée après l’enregistrement via /v1/apps/set
L’enregistrement d’une application via /v1/apps/set fournira une réponse similaire à celle ci-dessous. Merci de télécharger le SDK AppointmentTrader à l’URL indiquée dans le champ Payload->sdkUrl.
Rappel : NE PARTAGEZ PAS ce fichier zip, il contient vos clés personnelles et compromettra votre sécurité s’il est partagé.
Après avoir extrait le contenu de ce fichier, vous pouvez télécharger le fichier défini dans « boilerplateUrl » pour obtenir la mise en place de base comme défini ci-dessous.
/v1/apps/get_list vous fournira ces URL pour toutes vos apps si besoin.
{
"RequestUserAlias": "YourUserHandle",
"RequestPath": "/v1/apps/set",
"RequestStatus": "Succeeded",
"ResponseCode": 100,
"ResponseMessage": "Request Successful",
"Payload": {
"uniqueAppIdentifier": "ForecastExplorer",
"sdkUrl": "https://appointmenttrader.com/modules/apps/download_sdk.php?unique_app_id=ForecastExplorer&app_private_key=588f9b00f6038448a3200d8b736474f4",
"boilerplateUrl": "https://appointmenttrader.com/modules/apps/download_sdk.php?boilerplate"
}
}
Les applications sont accessibles de la manière suivante :
https://appointmenttrader.com/[YourAppIdentifier]
Exemples de dossiers racines :
Pour la version actuelle : (dans cet exemple v3 est la version actuelle)
https://appointmenttrader.com/ForecastExplorer
Pour une version ancienne : (visible uniquement par les comptes développeurs & relecteurs)
https://appointmenttrader.com/ForecastExplorer/legacy-versions/v2
Pour l’état de développement (visible uniquement par le compte développeur)
https://appointmenttrader.com/ForecastExplorer/development
Pour le candidat à la publication en cours de revue (visible uniquement par les comptes développeurs et relecteurs) après exécution de l’API apps::set_new_version
https://appointmenttrader.com/ForecastExplorer/release-candidate
La structure de présentation de l’application est la suivante :
[AppointmentTrader HTML5 Header, + bibliothèques listées dans « uiLibraries »]
[Votre code HTML & Javascript rendu]
[AppointmentTrader HTML5 Footer]
Veuillez suivre ces instructions pour la création de vos fichiers HTML côté interface utilisateur :
Les applications ne doivent contenir aucune bibliothèque front-end ou back-end externe, mais exclusivement du code HTML5, PHP, JavaScript et CSS pur. Aucun framework autorisé.
Toutes les communications avec des fournisseurs externes doivent se faire via des appels API https côté back-end.
Votre application AT doit implémenter le Namespacing
Nous exigeons la séparation des noms dans votre application afin d’éviter l’introduction de doublons d’identifiants html, de classes css ou de fonctions php/javascript dans l’écosystème.
Implémentation requise pour les ID HTML :
Les éléments HTML peuvent ne pas avoir d’ID, sinon vous devez préfixer l’identifiant unique de votre application. (Retour fourni par /v1/apps/set)
<span id="[YourAppIdentifier]-anyIdNameYouLike">Text</span>
Implémentation requise pour les espaces de noms JavaScript :
Cette méthode évite que différentes applications aient des fonctions du même nom dans l’écosystème.
Note : Utilisez la variable globale JavaScript _[YourAppIdentifier]BaseURL pour accéder à votre base url projet pour des tâches telles que les appels Fetch HTTPS.
var YourAppIdentifier = {};
YourAppIdentifier.CustomFunction = function(testParameter) {
console.log(testParameter);
};
YourAppIdentifier.CustomObject = {};
Implémentation requise pour les espaces de noms CSS :
Les modificateurs globaux comme [name="xxx"] ne sont pas autorisés, toutes les feuilles de style doivent être encapsulées en classes ou opérateurs id
#[YourAppIdentifier]-anyIdNameYouLike {
color: red;
}
.[YourAppIdentifier]-color-red-text {
color: red;
}
Implémentation requise pour les espaces de noms PHP :
Incluez le fichier at_app_header.php en première ligne de chaque fichier php afin que votre application fonctionne dans le bon espace de noms et que les fonctions API soient disponibles – n’appelez pas les fonctions API AT via https, mais utilisez les méthodes ATApiRead(string $endpoint, array $variables) et ATApiWrite(string $endpoint, array $variables, bool $validateRequestOnly) qui seront invoquées différemment une fois votre version déployée en production.
Exemple d’utilisation de certaines fonctions du SDK PHP :
// at_app_header.php définira le Namespace ATApp[YourAppIdentifier]
include __DIR__ . '../at_app_header.php';
// $ATUser['ID'] Contient l’ID de l’utilisateur connecté
// null si aucun utilisateur n’est authentifié
echo $ATUser['ID'] === null ? 'Aucun utilisateur connecté' : 'ID utilisateur connecté :'.$ATUser['ID'];
//$ATUser['Alias'] Contient l’Alias de l’utilisateur connecté
// null si aucun utilisateur n’est authentifié
echo $ATUser['Alias'] === null ? 'Aucun utilisateur connecté' : 'Alias utilisateur connecté :'.$ATUser['Alias'];
//votre code php
N'utilisez _pas_ les balises <html /> <head /> et <body /> – votre html sera intégré dans la structure HTML AppointmentTrader, l’ajout de ces balises serait redondant.
Ajoutez toutes les bibliothèques requises dans le fichier structure.json.php dans la section "uiLibraries" comme décrit ci-dessous, afin que les ressources soient correctement rendues dans le code html AppointmentTrader.
Lorsque vous effectuez des appels API AppointmentTrader depuis votre UI HTML, il n’est _pas nécessaire_ d’inclure la clé API car l’utilisateur actuellement connecté sera utilisé pour exécuter votre requête.
Veuillez structurer votre app sur votre infrastructure ainsi :
(Exemple : https://yourhomelabip/myatapp/)
Important : Le répertoire de votre projet AT doit avoir les permissions d’écriture (sur systèmes Linux 0777) pour at_app_header.php, /appointmenttrader_sdk/ & /production/ car la gestion de révision AT modifiera votre système de fichiers lors du déploiement d’une nouvelle version, par exemple en compressant les versions, hachant les sources, ou en mettant à jour les fichiers SDK si nécessaire.
Avis de sécurité : /v1/apps/set retournera le [YourAppIdentifier] public ainsi qu’une clé privée à renseigner dans la variable $at_app_private_key du fichier at_app_header.php, elle sera utilisée pour accéder de façon sécurisée à votre système de fichiers depuis AppointmentTrader.
/at_app_header.php -> ce fichier fait partie du package sdk lié dans /v1/apps/set et /v1/apps/get_list et doit se trouver à la racine, il doit être inclus par tous les fichiers backend PHP
/appointmenttrader_sdk/ -> inclut les fichiers assets du package sdk ci-dessus
/development/ -> Dossier de développement, si vous êtes connecté avec un compte de développement, vous accédez à l’état actuel de développement en direct à https://appointmenttrader.com/[UserAlias]/[YourAppIdentifier]/development/, toutes modifications sont effectuées ici et le SDK AppointmentTrader gérera le déploiement et la révision via l’API :apps::set_new_version dès que vous aurez terminé le développement et les tests de la version.
/development/index.php -> page de démarrage de votre App
/development/structure.json.php -> fichier contenant la structure de l’app
/development/invoke_event.php (optionnel) -> appelé lors du déclenchement d’un événement enregistré pour l’application (ex : onNewBid)
/development/php-libraries/ (optionnel) -> si votre app contient des bibliothèques, placez-les ici, elles doivent finir par lib.php sinon elles ne seront pas acceptées, les bibliothèques ne peuvent pas être appelées directement mais incluses, ce qui garantit le respect des espaces de noms
/development/css-libraries/ (optionnel) -> si votre app contient des css, ajoutez-les ici
/development/javascript-libraries/ (optionnel) -> si votre app contient des js, ajoutez-les ici
/development/datastore/ (optionnel) -> si votre app lit/écrit des données, mettez-les ici, c’est le seul dossier accessible en lecture/écriture avec file_get_contents() en production
/development/assets/ (optionnel) -> si votre app utilise des assets tels qu’images, mettez-les ici ; pour y accéder, utilisez la variable get _ATWebBasePath, Ex. : img src="echo $_GET['_ATWebBasePath']; assets/image.jpg" ou la variable JavaScript _RequestPath
/development/marketing/ -> contient tout le matériel de promotion de votre app
/development/marketing/storefront.html
/development/marketing/assets/ (optionnel)
/production/ -> l’API :apps::set_new_version communiquera avec votre serveur via le SDK AppointmentTrader pour zipper l’état de développement courant puis remettre les fichiers à l’environnement de production AT selon cette structure.
Exemple de structure structure.json.php, tous les chemins sont relatifs à [baseurl]version :
Important : N’incluez aucun fichier javascript ou css via les balises <script /> ou <link /> ; AT s’en charge via votre fichier structure.json.php.
La clé 'any-ui-file' rend vos bibliothèques disponibles sur tous les fichiers du projet, les clés de fichiers les rendent accessibles à des fichiers spécifiques.
La clé 'globalAliasFor' dans la section navigation permet de spécifier où les utilisateurs peuvent implanter votre app dans leur Portail AppointmentTrader, par exemple si vous construisez une vue portefolio améliorée, les utilisateurs peuvent sélectionner votre app dans la section portefeuille.
{
"technical": {
"uiLibraries": {
"any-ui-file": [
{
"path": "/javascript-libraries/util.js",
"type": "javascript"
},
{
"path": "/css-libraries/style.css",
"type": "stylesheet"
}
],
"exampledir/examplefile.html": [
{
"path": "/javascript-libraries/extra_util.js",
"type": "javascript"
}
]
},
"registerForEventList": [
"OnNewBid"
],
"navigation": [
{
"itemName": "Pro Portfolio",
"itemDescription": "Portefeuille avancé et rapide pour les vendeurs Pro sur AT",
"itemLink": "/exampledir/examplefile.php",
"globalAliasFor": "/modules/portfolio/index.php"
}
],
"marketing": [
{
"pricing":[{"monthly":[{"Type":"USDCent", "Amount":2900, "TrialperiodInDays":14}]}],
"appIconPath": "/assets/icon.png"
}],
"communityRewards": [
{
"perTranslatedKey":[{"Type":"Traderpoint", "Amount":25}],
"perValidatedBug":[{"Type":"Traderpoint", "Amount":250}]
}]
}
}
Guide de style UI
Merci de vous assurer que votre App respecte ces recommandations pour garantir une expérience utilisateur optimale sur AT
Couleurs :
#FFFFFF (blanc)
#3C9A52 (vert AppointmentTrader)
#3D9563F (rouge AppointmentTrader)
#555555 Gris (principalement pour le texte)
Titres :
Merci d’utiliser des titres consécutifs : h1 pour le titre principal, h2 pour une section secondaire, etc.
Box d’informations – merci d’utiliser le style suivant, comme votre contenu html sera intégré dans AppointmentTrader, vous aurez accès aux classes css et images listées
<div class="shadow">;
<h2>Titre</h2>
<div class="info_box_line">
<div class="icon"> <img src="/images/ios-information-circle-outline.svg"> </div>
<div class="info">
<p class="small-text mb-1 gray-txt">Votre contenu d’information</p>
</div>
</div>
</div>
Les éléments autres que les Box d’information doivent avoir un padding de 16px à gauche et à droite
L’espace vertical entre éléments appartenant ensemble doit être de 5px, sinon 10px ou une balise <hr>.
Paragraphes
<p class="small-text mb-1 gray-txt">Texte du paragraphe</p>
Liens & Boutons :
Liens
Sauf si vous faites un lien externe, utilisez la fonction javascript:Navigate() pour permettre un chargement dynamique.
<a class="link" href="javascript:Navigate('abc');">Texte du bouton
Bouton de confirmation :
<a class="btn-profit" href="https://appointmenttrader.com">Texte du bouton
Bouton annuler :
<a class="btn-cancel" href="https://appointmenttrader.com">Texte du bouton
Bouton supprimer :
<a class="btn-delete" href="https://appointmenttrader.com">Texte du bouton
Bouton confirmation majeur :
<a class="btn full" href="https://appointmenttrader.com">Texte du bouton
Formulaires
<div class="form-group">
<label class="small-text gray-txt" id="[YourAppIdentifier]-input-field-label">Label de votre champ</label>
<input autocomplete="off" type="text" class="form-control" value="" id="[YourAppIdentifier]-input-field">
</div>
Fonctions Javascript UI
Afficher un message
ScreenFeedback("Votre message", "Votre titre");
AppointmentTrader permet aux utilisateurs de naviguer sur toute la plateforme à l’aide de la barre de recherche sur chaque page,
Les développeurs d’apps peuvent utiliser le système en ajoutant les attributs suivants à leur contenu.
La structure générale du DOM Search est la suivante :
CONTAINER
-- ÉLÉMENT 1
-- ÉLÉMENT 2
<ul data-domsearchgroupcontainer="Nom du container">
<li data-domsearchgroup="Nom du container" data-domsearchphrase="Nom du container Élément 1">Élément 1</li>
<li data-domsearchgroup="Nom du container" data-domsearchphrase="Nom du container Élément 2">Élément 1</li>
</ul>
Support Multilingue
Pour afficher du texte, veuillez utiliser la fonction sdk echolang() qui générera automatiquement les clés de langue et permettra aux utilisateurs de la communauté de traduire votre app.
Vous pouvez récompenser les utilisateurs qui traduisent votre app pour la rendre accessible à un plus grand nombre de régions AppointmentTrader en définissant la clé "communityRewards"->"perTranslationKey" dans votre structure.json.php, ce qui versera à l’utilisateur communautaire le montant spécifié à chaque ajout de traduction.
/v1/tools/
Fournit des fonctions utiles pour compléter les échanges de rendez-vous
/v1/community/
Gère les fonctions liées à la communauté
/v1/location/
Gère toutes les fonctions liées à l’emplacement.
/v1/listing/
Gère les fonctions liées au portefeuille telles que les changements de prix et de statut
/v1/portfolio/
Gère toutes les fonctions liées au portefeuille
/v1/bid/
Gère toutes les fonctions liées aux offres
/v1/aichat/
Gère les fonctions liées au chat IA
/v1/account/
Gère l’accès au compte AppointmentTrader
/v1/marketdata/
Contient toutes les fonctions de données de marché permettant aux vendeurs de repérer les tendances tout au long de l’année
/v1/medal/
Gère toutes les fonctions liées aux médailles et aux autorisations des utilisateurs
/v1/user/
Contient toutes les fonctions liées à l'utilisateur
/v1/notification/
Gère toutes les fonctions liées aux notifications