diff --git a/webapp/static/css/mvp.css b/webapp/static/css/mvp.css deleted file mode 100644 index 3c3d2b6..0000000 --- a/webapp/static/css/mvp.css +++ /dev/null @@ -1,603 +0,0 @@ -/* MVP.css v1.17.2 - https://github.com/andybrewer/mvp */ - -:root { - --active-brightness: 0.85; - --border-radius: 5px; - --box-shadow: 2px 2px 10px; - --color-accent: #118bee15; - --color-bg: #fff; - --color-bg-secondary: #e9e9e9; - --color-link: #118bee; - --color-secondary: #920de9; - --color-secondary-accent: #920de90b; - --color-shadow: #f4f4f4; - --color-table: #118bee; - --color-text: #000; - --color-text-secondary: #999; - --color-scrollbar: #cacae8; - --font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; - --hover-brightness: 1.2; - --justify-important: center; - --justify-normal: left; - --line-height: 1.5; - --width-card: 285px; - --width-card-medium: 460px; - --width-card-wide: 800px; - --width-content: 1080px; -} - -@media (prefers-color-scheme: dark) { - :root[color-mode="user"] { - --color-accent: #0097fc4f; - --color-bg: #333; - --color-bg-secondary: #555; - --color-link: #0097fc; - --color-secondary: #e20de9; - --color-secondary-accent: #e20de94f; - --color-shadow: #bbbbbb20; - --color-table: #0097fc; - --color-text: #f7f7f7; - --color-text-secondary: #aaa; - } -} - -html { - scroll-behavior: smooth; -} - -@media (prefers-reduced-motion: reduce) { - html { - scroll-behavior: auto; - } -} - -/* Layout */ -article aside { - background: var(--color-secondary-accent); - border-left: 4px solid var(--color-secondary); - padding: 0.01rem 0.8rem; -} - -body { - background: var(--color-bg); - color: var(--color-text); - font-family: var(--font-family); - line-height: var(--line-height); - margin: 0; - overflow-x: hidden; - padding: 0; -} - -footer, -header, -main { - margin: 0 auto; - max-width: var(--width-content); - /* padding: 3rem 1rem; */ - padding: 1rem 1rem; -} - -hr { - background-color: var(--color-bg-secondary); - border: none; - height: 1px; - margin: 4rem 0; - width: 100%; -} - -section { - display: flex; - flex-wrap: wrap; - justify-content: var(--justify-important); -} - -section img, -article img { - max-width: 100%; -} - -section pre { - overflow: auto; -} - -section aside { - border: 1px solid var(--color-bg-secondary); - border-radius: var(--border-radius); - box-shadow: var(--box-shadow) var(--color-shadow); - margin: 1rem; - padding: 1.25rem; - width: var(--width-card); -} - -section aside:hover { - box-shadow: var(--box-shadow) var(--color-bg-secondary); -} - -[hidden] { - display: none; -} - -/* Headers */ -article header, -div header, -main header { - padding-top: 0; -} - -header { - text-align: var(--justify-important); -} - -header a b, -header a em, -header a i, -header a strong { - margin-left: 0.5rem; - margin-right: 0.5rem; -} - -/* header nav img { - margin: 1rem 0; -} */ - -section header { - padding-top: 0; - width: 100%; -} - -/* Nav */ -nav { - align-items: center; - display: flex; - font-weight: bold; - justify-content: space-between; - /* margin-bottom: 7rem; */ -} - -nav ul { - list-style: none; - padding: 0; -} - -nav ul li { - display: inline-block; - margin: 0 0.5rem; - position: relative; - text-align: left; -} - -/* Nav Dropdown */ -nav ul li:hover ul { - display: block; -} - -nav ul li ul { - background: var(--color-bg); - border: 1px solid var(--color-bg-secondary); - border-radius: var(--border-radius); - box-shadow: var(--box-shadow) var(--color-shadow); - display: none; - height: auto; - left: -2px; - padding: 0.5rem 1rem; - position: absolute; - top: 1.7rem; - white-space: nowrap; - width: auto; - z-index: 1; -} - -nav ul li ul::before { - /* fill gap above to make mousing over them easier */ - content: ""; - position: absolute; - left: 0; - right: 0; - top: -0.5rem; - height: 0.5rem; -} - -nav ul li ul li, -nav ul li ul li a { - display: block; -} - -/* Nav for Mobile */ -@media (max-width: 768px) { - nav { - flex-wrap: wrap; - } - - nav ul li { - width: calc(100% - 1em); - } - - nav ul li ul { - border: none; - box-shadow: none; - display: block; - position: static; - } -} - -/* Typography */ -code, -samp { - background-color: var(--color-accent); - border-radius: var(--border-radius); - color: var(--color-text); - display: inline-block; - margin: 0 0.1rem; - padding: 0 0.5rem; -} - -details { - margin: 1.3rem 0; -} - -details summary { - font-weight: bold; - cursor: pointer; -} - -h1, -h2, -h3, -h4, -h5, -h6 { - line-height: var(--line-height); - text-wrap: balance; -} - -mark { - padding: 0.1rem; -} - -ol li, -ul li { - padding: 0.2rem 0; -} - -p { - margin: 0.75rem 0; - padding: 0; - width: 100%; -} - -pre { - margin: 1rem 0; - max-width: var(--width-card-wide); - padding: 1rem 0; -} - -pre code, -pre samp { - display: block; - max-width: var(--width-card-wide); - padding: 0.5rem 2rem; - white-space: pre-wrap; -} - -small { - color: var(--color-text-secondary); -} - -sup { - background-color: var(--color-secondary); - border-radius: var(--border-radius); - color: var(--color-bg); - font-size: xx-small; - font-weight: bold; - margin: 0.2rem; - padding: 0.2rem 0.3rem; - position: relative; - top: -2px; -} - -/* Links */ -a { - color: var(--color-link); - display: inline-block; - font-weight: bold; - text-decoration: underline; -} - -a:hover { - filter: brightness(var(--hover-brightness)); -} - -a:active { - filter: brightness(var(--active-brightness)); -} - -a b, -a em, -a i, -a strong, -button, -input[type="submit"] { - border-radius: var(--border-radius); - display: inline-block; - font-size: medium; - font-weight: bold; - line-height: var(--line-height); - margin: 0.5rem 0; - padding: 1rem 2rem; -} - -button, -input[type="submit"] { - font-family: var(--font-family); -} - -button:hover, -input[type="submit"]:hover { - cursor: pointer; - filter: brightness(var(--hover-brightness)); -} - -button:active, -input[type="submit"]:active { - filter: brightness(var(--active-brightness)); -} - -a b, -a strong, -button, -input[type="submit"] { - background-color: var(--color-link); - border: 2px solid var(--color-link); - color: var(--color-bg); -} - -a em, -a i { - border: 2px solid var(--color-link); - border-radius: var(--border-radius); - color: var(--color-link); - display: inline-block; - padding: 1rem 2rem; -} - -article aside a { - color: var(--color-secondary); -} - -/* Images */ -figure { - margin: 0; - padding: 0; -} - -figure img { - max-width: 100%; -} - -figure figcaption { - color: var(--color-text-secondary); -} - -/* Forms */ -button:disabled, -input:disabled { - background: var(--color-bg-secondary); - border-color: var(--color-bg-secondary); - color: var(--color-text-secondary); - cursor: not-allowed; -} - -button[disabled]:hover, -input[type="submit"][disabled]:hover { - filter: none; -} - -form { - border: 1px solid var(--color-bg-secondary); - border-radius: var(--border-radius); - box-shadow: var(--box-shadow) var(--color-shadow); - display: block; - max-width: var(--width-card-wide); - min-width: var(--width-card); - padding: 1.5rem; - text-align: var(--justify-normal); -} - -form header { - margin: 1.5rem 0; - padding: 1.5rem 0; -} - -input, -label, -select, -textarea { - display: block; - font-size: inherit; - max-width: var(--width-card-wide); -} - -input[type="checkbox"], -input[type="radio"] { - display: inline-block; -} - -input[type="checkbox"]+label, -input[type="radio"]+label { - display: inline-block; - font-weight: normal; - position: relative; - top: 1px; -} - -input[type="range"] { - padding: 0.4rem 0; -} - -input, -select, -textarea { - border: 1px solid var(--color-bg-secondary); - border-radius: var(--border-radius); - margin-bottom: 1rem; - padding: 0.4rem 0.8rem; -} - -input[type="text"], -input[type="password"], -input[type="email"], -textarea { - width: calc(100% - 1.6rem); -} - -input[readonly], -textarea[readonly] { - background-color: var(--color-bg-secondary); -} - -label { - font-weight: bold; - margin-bottom: 0.2rem; -} - -/* Popups */ -dialog { - max-width: 90%; - max-height: 85dvh; - margin: auto; - padding-block: 0; - padding-inline: 20px; - border: 1px solid var(--color-bg-secondary); - border-radius: 0.5rem; - overscroll-behavior: contain; - scroll-behavior: smooth; - scrollbar-width: none; - /* Hide scrollbar for Firefox */ - -ms-overflow-style: none; - /* Hide scrollbar for IE and Edge */ - scrollbar-color: transparent transparent; - animation: bottom-to-top 0.25s ease-in-out forwards; -} - -dialog::-webkit-scrollbar { - width: 0; - display: none; -} - -dialog::-webkit-scrollbar-track { - background: transparent; -} - -dialog::-webkit-scrollbar-thumb { - background-color: transparent; -} - -@media (min-width: 650px) { - dialog { - max-width: 39rem; - } -} - -dialog::backdrop { - background-color: rgba(0, 0, 0, 0.5); -} - -@keyframes bottom-to-top { - 0% { - opacity: 0; - transform: translateY(10%); - } - - 100% { - opacity: 1; - transform: translateY(0); - } -} - -dialog hr { - margin-block: 1rem; -} - -/* Tables */ -table { - border: 1px solid var(--color-bg-secondary); - border-radius: var(--border-radius); - border-spacing: 0; - display: inline-block; - max-width: 100%; - overflow-x: auto; - padding: 0; - white-space: nowrap; -} - -table td, -table th, -table tr { - padding: 0.4rem 0.8rem; - text-align: var(--justify-important); -} - -table thead { - background-color: var(--color-table); - border-collapse: collapse; - border-radius: var(--border-radius); - color: var(--color-bg); - margin: 0; - padding: 0; -} - -table thead tr:first-child th:first-child { - border-top-left-radius: var(--border-radius); -} - -table thead tr:first-child th:last-child { - border-top-right-radius: var(--border-radius); -} - -table thead th:first-child, -table tr td:first-child { - text-align: var(--justify-normal); -} - -table tr:nth-child(even) { - background-color: var(--color-accent); -} - -/* Quotes */ -blockquote { - display: block; - font-size: x-large; - line-height: var(--line-height); - margin: 1rem auto; - max-width: var(--width-card-medium); - padding: 1.5rem 1rem; - text-align: var(--justify-important); -} - -blockquote footer { - color: var(--color-text-secondary); - display: block; - font-size: small; - line-height: var(--line-height); - padding: 1.5rem 0; -} - -/* Scrollbars */ -* { - scrollbar-width: thin; - scrollbar-color: var(--color-scrollbar) transparent; -} - -*::-webkit-scrollbar { - width: 5px; - height: 5px; -} - -*::-webkit-scrollbar-track { - background: transparent; -} - -*::-webkit-scrollbar-thumb { - background-color: var(--color-scrollbar); - border-radius: 10px; -} \ No newline at end of file diff --git a/webapp/static/css/style.css b/webapp/static/css/style.css deleted file mode 100644 index 25a3d21..0000000 --- a/webapp/static/css/style.css +++ /dev/null @@ -1,19 +0,0 @@ -header nav img { - border-radius: 50%; -} - -table th, -table td { - text-align: left; - vertical-align: top; - overflow: hidden; - white-space: normal; -} - -table.live-alert tr td:last-child { - white-space: nowrap; -} - -a.icon { - text-decoration: none; -} \ No newline at end of file diff --git a/webapp/templates/commandes.html b/webapp/templates/commandes.html index 77568d8..8fb7afe 100644 --- a/webapp/templates/commandes.html +++ b/webapp/templates/commandes.html @@ -1,55 +1,101 @@ {% extends "template.html" %} {% block content %} -

Commandes de Mamie

-

Gérez les commandes personnalisées du bot. Ces commandes peuvent être activées sur Discord et/ou Twitch selon vos besoins.

- - - - - - - - - - - - {% for commande in commandes %} - - - - - - - - {% endfor %} - -
CommandeRéponseDiscordTwitchActions
{{ commande.trigger }}{{ commande.response }} - - {{ '✅' if commande.discord_enable else '❌' }} - - - - {{ '✅' if commande.twitch_enable else '❌' }} - - - Supprimer -
+
+

Commandes

+

+ Gérez les commandes personnalisées du bot. Ces commandes peuvent être activées sur Discord et/ou Twitch. +

+
-

Ajouter une commande

-
- - - - -
- - +
+
+ + + + + + + + + + + + {% for commande in commandes %} + + + + + + + + {% else %} + + + + {% endfor %} + +
CommandeRéponseDiscordTwitchActions
+ {{ commande.trigger }} + +
{{ commande.response }}
+
+ + {% if commande.discord_enable %} + + {% else %} + + {% endif %} + + + + {% if commande.twitch_enable %} + + {% else %} + + {% endif %} + + + + Supprimer + +
+ Aucune commande configurée +
-
- - -
- - -{% endblock %} \ No newline at end of file +
+ +
+

Ajouter une commande

+ +
+
+
+ + +
+
+ + +
+
+ +
+ + +
+ +
+ +
+
+
+{% endblock %} diff --git a/webapp/templates/configurations.html b/webapp/templates/configurations.html index 40cf0bf..264b983 100644 --- a/webapp/templates/configurations.html +++ b/webapp/templates/configurations.html @@ -1,240 +1,251 @@ {% extends "template.html" %} {% block content %} -

Configuration de Mamie

-

Configurez les tokens Discord, les notifications Humble Bundle et l'API Twitch.

+
+

Configurations

+

+ Paramètres Discord, Twitch et Humble Bundle. +

+
-

Discord

-
-
- API Discord - - - Nécessite un redémarrage après modification -
- -
- Messages de bienvenue - - - - - - - - - Syntaxes disponibles :
- • {member.mention} - Mentionne l'utilisateur (@NomUtilisateur)
- • {member.name} - Nom d'utilisateur (sans mention)
- • {member.display_name} - Surnom sur le serveur
- • {member.id} - ID de l'utilisateur
- • {server.name} - Nom du serveur
- • {server.member_count} - Nombre total de membres
- • <#ID_DU_CHANNEL> - Mentionne un salon (ex: <#123456789012345678>) -
-
- -
- Messages de départ - - - - - - - - - Syntaxes disponibles :
- • {member.mention} - Mentionne l'utilisateur (@NomUtilisateur)
- • {member.name} - Nom d'utilisateur (sans mention)
- • {member.display_name} - Surnom sur le serveur
- • {member.id} - ID de l'utilisateur
- • {server.name} - Nom du serveur
- • {server.member_count} - Nombre total de membres
- • <#ID_DU_CHANNEL> - Mentionne un salon (ex: <#123456789012345678>) -
-
- -
- Modération - - - - - - - - - Toutes les actions de modération seront notifiées dans ce canal - - - {% set selected_roles = (configuration.getValue('moderation_staff_role_ids') or '').split(',') %} - - {% if roles|length > 1 %} -
- {% for guild_data in roles %} - - {% endfor %} +
+
+

Discord

+
+ + +
+ + +

Nécessite un redémarrage après modification

- {% endif %} - - {% for guild_data in roles %} -
-
- {% for role in guild_data.roles %} -
+ +
+
+

API Twitch

+
+ +
+
+
+ + +
+
+ + +
+
- Sélectionnez un ou plusieurs rôles qui peuvent utiliser les commandes de modération +
+ + +
+ + {% if configuration.getValue('twitch_client_secret') and configuration.getValue('twitch_client_id') %} + - - - - - - - Mettre 0 pour ne pas supprimer automatiquement -
+
+
+ + +
+
+ + +
+
+

Nécessite un redémarrage après l'obtention des tokens

+ {% endif %} - - +
+ + Besoin d'aide ? +
+ +
-

API Twitch

-
- - - - - - - -

- Aide -

- {% if configuration.getValue('twitch_client_secret') and configuration.getValue('twitch_client_id') %} -

- Obtenir token et refresh token -

- - - - -

Nécessite un redémarrage après l'obtention des Tokens.

- {% endif %} -
+
+
+

Humble Bundle

+
+ +
+

+ Activez les notifications pour recevoir automatiquement les nouveaux packs sur Discord. +

-

Humble Bundle

- -

Humble Bundle propose régulièrement des bundles de jeux vidéo à des prix réduits. Activez les notifications pour recevoir automatiquement les nouveaux packs disponibles sur votre serveur Discord.

+ - +
+ + +
- - + +
+
- - -{% endblock %} \ No newline at end of file + +{% endblock %} diff --git a/webapp/templates/humeurs.html b/webapp/templates/humeurs.html index a060ccf..53361df 100644 --- a/webapp/templates/humeurs.html +++ b/webapp/templates/humeurs.html @@ -1,29 +1,44 @@ {% extends "template.html" %} {% block content %} -

Humeurs de Mamie

-

Définissez les statuts Discord qui changeront automatiquement toutes les 10 minutes pour donner de la personnalité à votre bot.

- - - - - - - - - {% for humeur in humeurs %} - - - - - {% endfor %} - -
TexteAction
{{humeur.text}}Supprimer
+
+

Humeurs

+

+ Statuts Discord qui changeront automatiquement toutes les 10 minutes. +

+
-

Ajouter une humeur

-
- - - -
-{% endblock %} \ No newline at end of file +
+ {% if humeurs %} + + {% else %} +
+

Aucune humeur configurée

+
+ {% endif %} +
+ +
+

Ajouter une humeur

+ +
+
+
+ +
+ +
+
+
+{% endblock %} diff --git a/webapp/templates/live-alert.html b/webapp/templates/live-alert.html index f7ed4a3..f67e430 100644 --- a/webapp/templates/live-alert.html +++ b/webapp/templates/live-alert.html @@ -1,76 +1,135 @@ {% extends "template.html" %} {% block content %} -

Alerte Live

- -

- Liste des chaines surveillées pour les alertes de live twitch. - - Le bot vérifie toutes les 5 minutes qui est en live dans la liste en dessous. - Le bot enregistre le status de stream toutes les 5 minutes, quand le status pass de "hors-ligne" à "en ligne" alors - le bot le notifiera sur discord. - Ne peu surveiller qu'au maximum 100 chaines. -

+
+

Alertes Live

+

+ Chaînes Twitch surveillées. Vérification toutes les 5 minutes, maximum 100 chaînes. +

+
{% if not alert %} -

Alertes

- - - - - - - - - - - {% for alert in alerts %} - - - - - - - {% endfor %} - -
ChaineCanalMessage#
{{alert.login}}{{alert.notify_channel_name}}{{alert.message}} - {{ '✅' if alert.enable else '❌' }} - - 🗑 -
+
+
+

Alertes configurées

+
+
+ + + + + + + + + + + {% for alert in alerts %} + + + + + + + {% else %} + + + + {% endfor %} + +
ChaîneCanal DiscordMessageActions
+ {{ alert.login }} + + #{{ alert.notify_channel_name }} + +
{{ alert.message }}
+
+ +
+ Aucune alerte configurée +
+
+
{% endif %} -

{{ 'Editer une alerte' if alert else 'Ajouter une alerte de Live' }}

-
- - - - - - - -

- La chaine est le login de la chaine, par exemple chainesteve pour https://www.twitch.tv/chainesteve. -

-

- Pour le message vous avez acces à ces variables : -

- Le message est au format common-mark dans la limite de ce que - support discord. - Pour mettre un lien vers la chaine : [description](https://www.twitch.tv/{0.user_login}) -

-
- -{% endblock %} \ No newline at end of file +
+

+ {% if alert %}Modifier l'alerte{% else %}Ajouter une alerte{% endif %} +

+ +
+
+
+ + +

Le login de la chaîne, ex: chainesteve

+
+ +
+ + +
+
+ +
+ + +
+ +
+

Variables disponibles :

+
+
+ {0.user_login} + Lien vers la chaîne +
+
+ {0.user_name} + Nom du streamer +
+
+ {0.game_name} + Jeu en cours +
+
+ {0.title} + Titre du stream +
+
+ {0.language} + Langue du stream +
+
+
+ +
+ {% if alert %} + + Annuler + + {% endif %} + +
+
+
+{% endblock %} diff --git a/webapp/templates/protondb.html b/webapp/templates/protondb.html index 6cf256c..ee9f7c1 100644 --- a/webapp/templates/protondb.html +++ b/webapp/templates/protondb.html @@ -1,61 +1,124 @@ {% extends "template.html" %} {% block content %} -

Proton DB

-

ProtonDB évalue la compatibilité des jeux Windows sur Linux via Steam Play.

+
+

ProtonDB

+

+ Compatibilité des jeux Windows sur Linux via Steam Play. +

+
{% if configuration.getValue('proton_db_enable_enable') %} -

Game alias

- - - - - - - - - - {% for a in aliases %} - - - - - - {% endfor %} - -
AliasGame#
{{a.alias}}{{a.name}}Supprimer
+
+
+

Alias de jeux

+
+
+ + + + + + + + + + {% for a in aliases %} + + + + + + {% else %} + + + + {% endfor %} + +
AliasNom du jeuActions
+ {{ a.alias }} + + {{ a.name }} + + + Supprimer + +
+ Aucun alias configuré +
+
+
-

Ajouter un Alias

-
- - - - - -

Si vous créez un alias GTA : Grand Theft Auto alors si un utilisateur rentre la commande - !protondb GTA 5 cela fera une recherche sur Grand Theft Auto 5. -

-
+
+

Ajouter un alias

+ +
+
+
+ + +
+
+ + +
+
+ +
+ +
+
+ +
+

+ Exemple : Si vous créez un alias GTA → Grand Theft Auto, alors !protondb GTA 5 fera une recherche sur Grand Theft Auto 5. +

+
+
{% endif %} -

Configuration

-
- - - - - - - - -

Pour trouver les clés, dans votre navigateur avec l'outil d'inspection ouvert (F12 ou clic droit > Inspecter - l'élément dans Firefox/Chrome) faites une recherche de jeux sur protondb, - puis cherchez les clés dans les requêtes (onglet Réseau/Network), - comme le montre cet exemple -

-
+
+
+

Configuration

+
+ +
+ +
+
+ + +
+
+ + +
+
-{% endblock %} \ No newline at end of file + +
+ +
+
+

Comment trouver les clés API ?

+
    +
  1. Ouvrez l'outil d'inspection de votre navigateur (F12)
  2. +
  3. Allez dans l'onglet Réseau/Network
  4. +
  5. Faites une recherche de jeu sur ProtonDB
  6. +
  7. Cherchez les clés dans les requêtes réseau
  8. +
+ + Voir l'exemple en image + +
+
+
+{% endblock %} diff --git a/webapp/templates/twitch-aide.html b/webapp/templates/twitch-aide.html index e11aefb..778ee18 100644 --- a/webapp/templates/twitch-aide.html +++ b/webapp/templates/twitch-aide.html @@ -1,35 +1,92 @@ {% extends "template.html" %} {% block content %} -

Procédure de configuration de Twitch

-

- Avant toute chose, activez l'authentification à deux facteurs (2FA) : - Guide officiel - Twitch pour la 2FA -

-

- Rendez-vous sur la console d'applications Twitch et - ajoutez une application. Renseignez : -

-

+
+

Configuration Twitch

+

+ Guide étape par étape pour configurer l'API Twitch. +

+
- +
+
+
+
+ 1 +

Activer l'authentification à deux facteurs (2FA)

+
+
+
+

+ Avant de créer une application Twitch, vous devez activer la 2FA sur votre compte. +

+ + + Guide officiel Twitch + +
+
-

- Créez le bot. Puis, de retour à la liste, éditez-le en cliquant sur Gérer. Puis cliquez sur Nouveau - Secret. Vous trouverez ici le Client ID et le Client Secret. -

+
+
+
+ 2 +

Créer une application Twitch

+
+
+
+

+ Rendez-vous sur la console Twitch et créez une nouvelle application : +

+ + Console Twitch + - +
+
URL de redirection : {{ token_redirect_url }}
+
Catégorie : Chat Bot
+
-

- Ensuite, retournez sur la page de Configuration, après avoir - enregistré le Client ID et le Client Secret, cliquez sur le lien Obtenir - token et refresh token. Si tout se passe bien les champs Access Token et - Refresh Token sont remplis. -

+
+ Création d'application Twitch +
+
+
-{% endblock %} \ No newline at end of file +
+
+
+ 3 +

Récupérer les identifiants

+
+
+
+

+ Cliquez sur Gérer puis Nouveau Secret pour obtenir le Client ID et Client Secret. +

+
+ Récupération des identifiants +
+
+
+ +
+
+
+ 4 +

Configurer Mamie Henriette

+
+
+
+
    +
  1. Entrez le Client ID et Client Secret
  2. +
  3. Cliquez sur Enregistrer
  4. +
  5. Cliquez sur "Obtenir token et refresh token"
  6. +
+ + Aller à la Configuration + +
+
+
+{% endblock %}