# Paramètres du chat et de la messagerie Telegram

**Travailler avec les ID de plateforme dans MaviBot**

Dans MaviBot, toutes les entités Telegram (utilisateurs, groupes, canaux) sont identifiées par une `platform_id` variable générique. Cette variable ne fait pas de distinction entre les types d’entités.

**Problème :** Pour utiliser des fonctions comme `accept` ou `reject` qui nécessitent des types d’entités spécifiques, vous devez connaître à la fois le *chat* ID et le *user* ID séparément.

**Solution :** Lorsque vous recevez un callback ou un message, stockez immédiatement la `platform_id` valeur dans deux variables distinctes, nommées selon leur usage :

* **`chat_id`** – pour stocker l’ID du groupe/canal.
* **`user_id`** – pour stocker l’ID de l’utilisateur individuel.

Cela vous permet de faire référence au bon ID plus tard dans la logique de votre application.

## Comment changer le nom du chat via un bot Telegram

<details>

<summary>Description</summary>

**tg\_set\_group\_title(platform\_id, title)** -&#x20;

Paramètres :

<table><thead><tr><th width="294.828125">Paramètre</th><th>Description</th></tr></thead><tbody><tr><td> <mark style="color:red;"><strong>!</strong></mark><strong> platform_id</strong> </td><td>l’ID du chat dans Telegram <a href="#gde-vzyat-platform_id-dlya-otpravki-uvedomlenii"><strong>*</strong></a>  </td></tr><tr><td><mark style="color:red;"><strong>!</strong></mark><strong> title</strong></td><td>nouveau nom du chat</td></tr></tbody></table>

</details>

## Comment changer la description du chat via un bot Telegram

<details>

<summary>Description</summary>

**tg\_set\_chat\_description(platform\_id, description)**

<table><thead><tr><th width="294.828125">Paramètre</th><th>Description</th></tr></thead><tbody><tr><td> <mark style="color:red;"><strong>!</strong></mark><strong> platform_id</strong> </td><td>l’ID du chat dans Telegram <a href="#gde-vzyat-platform_id-dlya-otpravki-uvedomlenii"><strong>*</strong></a>  </td></tr><tr><td><mark style="color:red;"><strong>!</strong></mark><strong> description</strong></td><td>nouveau nom du chat</td></tr></tbody></table>

</details>

## Comment définir un avatar dans un groupe/chat sur Telegram

<details>

<summary>Description</summary>

**tg\_set\_chat\_photo(platform\_id, photo)**

<table><thead><tr><th width="294.828125">Paramètre</th><th>Description</th></tr></thead><tbody><tr><td> <mark style="color:red;"><strong>!</strong></mark><strong> platform_id</strong> </td><td>ID du chat dans Telegram <a href="#gde-vzyat-platform_id-dlya-otpravki-uvedomlenii"><strong>*</strong></a><strong>,</strong> dans lequel vous souhaitez définir un avatar</td></tr><tr><td><mark style="color:red;"><strong>!</strong></mark><strong>  photo</strong></td><td>photo via lien</td></tr></tbody></table>

</details>

## Comment supprimer un avatar dans un groupe/chat sur Telegram

<details>

<summary>Description</summary>

**tg\_delete\_chat\_photo(platform\_id)**

<table><thead><tr><th width="294.828125">Paramètre</th><th>Description</th></tr></thead><tbody><tr><td> <mark style="color:red;"><strong>!</strong></mark><strong> platform_id</strong> </td><td>ID du chat dans Telegram <a href="#gde-vzyat-platform_id-dlya-otpravki-uvedomlenii"><strong>*</strong></a><strong>,</strong> dans lequel vous devez définir un avatar</td></tr></tbody></table>

</details>

## Comment bannir un groupe Telegram

<details>

<summary>Description</summary>

**tg\_ban\_chat\_sender\_chat(platform\_id, sender\_chat\_id)**&#x20;

Paramètres :

<table><thead><tr><th width="294.828125">Paramètre</th><th>Description</th></tr></thead><tbody><tr><td> <mark style="color:red;"><strong>!</strong></mark><strong> platform_id</strong> </td><td>ID du chat dans Telegram <a href="#gde-vzyat-platform_id-dlya-otpravki-uvedomlenii"><strong>*</strong></a><strong>que vous devez bannir</strong></td></tr><tr><td><mark style="color:red;"><strong>!</strong></mark><strong> sender_chat_id</strong></td><td>ID du chat qui va bannir</td></tr></tbody></table>

En même temps, le propriétaire du chat banni ne peut pas écrire au nom de ses autres chats tant qu’il/elle n’est pas débanni(e).

</details>

## Comment débloquer un groupe Telegram

<details>

<summary>Description</summary>

**tg\_unban\_chat\_sender\_chat(platform\_id, sender\_chat\_id)**

Paramètre :

<table><thead><tr><th width="294.828125">Paramètre</th><th>Description</th></tr></thead><tbody><tr><td> <mark style="color:red;"><strong>!</strong></mark><strong> platform_id</strong> </td><td>ID du chat dans Telegram <a href="#gde-vzyat-platform_id-dlya-otpravki-uvedomlenii"><strong>*</strong></a><strong>,</strong> dans lequel vous débloquez </td></tr><tr><td><mark style="color:red;"><strong>!</strong></mark><strong> sender_chat_id</strong></td><td>ID du chat que vous débloquez </td></tr></tbody></table>

</details>

## Comment créer un lien d’invitation pour rejoindre un chat Telegram

<details>

<summary>Description</summary>

**tg\_create\_chat\_invite\_link(platform\_id, member\_limit, hours, request, name)**&#x20;

Paramètre :

<table><thead><tr><th width="282.87109375">Paramètre</th><th>Description</th></tr></thead><tbody><tr><td><mark style="color:red;"><strong>!</strong></mark><strong> platform_id</strong></td><td>ID du chat dans Telegram <a href="#gde-vzyat-platform_id-dlya-otpravki-uvedomlenii"><strong>*</strong></a> </td></tr><tr><td><strong>member_limit</strong></td><td>limite sur le nombre de participants</td></tr><tr><td><strong>hours</strong></td><td>Temps d’expiration du lien (en heures)</td></tr><tr><td><strong>request</strong></td><td>un paramètre indiquant qu’après avoir cliqué sur le lien, une demande de rejoindre le chat doit être générée.</td></tr><tr><td><strong>name</strong> </td><td>nom du lien</td></tr></tbody></table>

{% hint style="info" %}
Lors du passage du **member\_limit** paramètre, la valeur du **request** paramètre est automatiquement modifiée en **Faux**. Si vous devez accepter les demandes d’adhésion, laissez alors le **member\_limit** paramètre vide.
{% endhint %}

**Création du lien d’invitation du chat**

<div data-with-frame="true"><figure><img src="/files/6507dfb5aa024cdb8ebdaf92f10b59e7292ece7a" alt="" width="563"><figcaption></figcaption></figure></div>

</details>

## Comment supprimer un lien d’invitation de chat dans Telegram

<details>

<summary>Description</summary>

**tg\_revoke\_chat\_invite\_link(platform\_id, invite\_link)**

Paramètres :

<table><thead><tr><th width="294.828125">Paramètre</th><th>Description</th></tr></thead><tbody><tr><td> <mark style="color:red;"><strong>!</strong></mark><strong> platform_id</strong> </td><td>ID du chat dans Telegram <a href="#gde-vzyat-platform_id-dlya-otpravki-uvedomlenii"><strong>*</strong></a></td></tr><tr><td> <mark style="color:red;"><strong>!</strong></mark><strong> invite_link</strong></td><td>lien que vous devez supprimer</td></tr></tbody></table>

</details>

## Comment désactiver tous les liens existants et les remplacer par un seul lien&#x20;

<details>

<summary>Description</summary>

&#x20;**tg\_export\_chat\_link(platform\_id)**

Paramètres :

<table><thead><tr><th width="294.828125">Paramètre</th><th>Description</th></tr></thead><tbody><tr><td> <mark style="color:red;"><strong>!</strong></mark><strong> platform_id</strong> </td><td>ID du chat dans Telegram <a href="#gde-vzyat-platform_id-dlya-otpravki-uvedomlenii"><strong>*</strong></a></td></tr><tr><td> <mark style="color:red;"><strong>!</strong></mark><strong> invite_link</strong></td><td>lien que vous devez supprimer</td></tr></tbody></table>

Le résultat est qu’un lien sera le seul moyen d’accéder au groupe jusqu’à ce que des liens supplémentaires soient créés par d’autres moyens.

{% hint style="warning" %}
Utilisez avec prudence. Tous les liens de connexion existants vers votre groupe deviendront inactifs.
{% endhint %}

</details>

## Comment accepter une demande et ajouter un utilisateur dans un canal/chat Telegram

<details>

<summary>Description</summary>

**tg\_approve\_chat\_join\_request(chat\_id, user\_id)**

Paramètres :

<table><thead><tr><th width="279.9765625"></th><th></th></tr></thead><tbody><tr><td><mark style="color:red;"><strong>!</strong></mark><strong> chat_id</strong></td><td>ID du groupe/canal dans Telegram <a href="#gde-vzyat-platform_id-dlya-otpravki-uvedomlenii"><strong>*</strong></a> </td></tr><tr><td><mark style="color:red;"><strong>!</strong></mark><strong> user_id</strong></td><td>ID de l’utilisateur dans Telegram <a href="#gde-vzyat-platform_id-dlya-otpravki-uvedomlenii"><strong>*</strong></a> </td></tr></tbody></table>

Acceptation de la demande :

<div data-with-frame="true"><figure><img src="/files/9a98573a683e5c9b9630a71f149a826f6c3d7c22" alt="" width="563"><figcaption></figcaption></figure></div>

</details>

## Comment refuser une demande dans un canal/chat Telegram

<details>

<summary>Description</summary>

**tg\_decline\_chat\_join\_request(chat\_id, user\_id)**&#x20;

Paramètres :

<table><thead><tr><th width="279.9765625"></th><th></th></tr></thead><tbody><tr><td><mark style="color:red;"><strong>!</strong></mark><strong> chat_id</strong></td><td>ID du groupe/canal dans Telegram <a href="#gde-vzyat-platform_id-dlya-otpravki-uvedomlenii"><strong>*</strong></a> </td></tr><tr><td><mark style="color:red;"><strong>!</strong></mark><strong> user_id</strong></td><td>ID de l’utilisateur dans Telegram <a href="#gde-vzyat-platform_id-dlya-otpravki-uvedomlenii"><strong>*</strong></a> </td></tr></tbody></table>

Refus de la demande

<div data-with-frame="true"><figure><img src="/files/0daf2ef185f975c370ac75b218ae5e71cb650796" alt="" width="563"><figcaption></figcaption></figure></div>

</details>

## Comment bloquer un utilisateur dans Telegram

<details>

<summary>Description</summary>

**tg\_ban\_chat\_member(chat\_id, user\_id, hours)**&#x20;

Paramètres :

<table><thead><tr><th width="283.67578125">Paramètre</th><th>Description</th></tr></thead><tbody><tr><td><mark style="color:red;"><strong>!</strong></mark><strong> chat_id</strong></td><td>ID du chat dans Telegram <a href="#gde-vzyat-platform_id-dlya-otpravki-uvedomlenii"><strong>*</strong></a> </td></tr><tr><td><mark style="color:red;"><strong>!</strong></mark><strong> user_id</strong></td><td>ID de l’utilisateur dans Telegram <a href="#gde-vzyat-platform_id-dlya-otpravki-uvedomlenii"><strong>*</strong></a> pour bloquer</td></tr><tr><td><strong>hours</strong></td><td>Durée du blocage en heures. Par défaut, le blocage est permanent. Si vous spécifiez une durée de blocage supérieure à 366 jours, le blocage sera défini comme permanent.</td></tr></tbody></table>

</details>

## Comment débloquer un utilisateur dans Telegram&#x20;

<details>

<summary>Description</summary>

**tg\_unban\_chat\_member(chat\_id, user\_id)** &#x20;

Paramètres :

<table><thead><tr><th width="283.67578125">Paramètre</th><th>Description</th></tr></thead><tbody><tr><td><mark style="color:red;"><strong>!</strong></mark><strong> chat_id</strong></td><td>ID du chat dans Telegram <a href="#gde-vzyat-platform_id-dlya-otpravki-uvedomlenii"><strong>*</strong></a> </td></tr><tr><td><mark style="color:red;"><strong>!</strong></mark><strong> user_id</strong></td><td>ID de l’utilisateur dans Telegram <a href="#gde-vzyat-platform_id-dlya-otpravki-uvedomlenii"><strong>*</strong></a><strong>,</strong>  que vous devez débloquer</td></tr></tbody></table>

</details>

## Comment vérifier le statut d’abonnement dans Telegram

<details>

<summary>Description</summary>

**tg\_get\_chat\_member(chat\_id, user\_id)**&#x20;

Paramètres :

<table><thead><tr><th width="283.67578125">Paramètre</th><th>Description</th></tr></thead><tbody><tr><td><mark style="color:red;"><strong>!</strong></mark><strong> chat_id</strong></td><td>ID du chat dans Telegram <a href="#gde-vzyat-platform_id-dlya-otpravki-uvedomlenii"><strong>*</strong></a> </td></tr><tr><td><mark style="color:red;"><strong>!</strong></mark><strong> user_id</strong></td><td>ID de l’utilisateur dans Telegram <a href="#gde-vzyat-platform_id-dlya-otpravki-uvedomlenii"><strong>*</strong></a><strong>,</strong> dont nous vérifions l’abonnement</td></tr></tbody></table>

</details>

## Comment déterminer le nombre de membres dans un canal/chat&#x20;

<details>

<summary>Description</summary>

**tg\_get\_chat\_member\_count(platform\_id)**

Paramètres :

<table><thead><tr><th width="283.67578125">Paramètre</th><th>Description</th></tr></thead><tbody><tr><td><mark style="color:red;"><strong>!</strong></mark><strong> platform_id</strong></td><td>ID du chat dans Telegram <a href="#gde-vzyat-platform_id-dlya-otpravki-uvedomlenii"><strong>*</strong></a></td></tr></tbody></table>

</details>

## Comment vérifier si un membre du chat figure dans une liste spécifique

<details>

<summary><strong>some_client_in_list(list_id, recepient)</strong></summary>

Paramètres :

<table><thead><tr><th width="283.67578125">Paramètre</th><th>Description</th></tr></thead><tbody><tr><td><mark style="color:red;"><strong>!</strong></mark><strong> list_id</strong></td><td>numéro de la liste</td></tr><tr><td><mark style="color:red;"><strong>!</strong></mark><strong> recepient</strong></td><td> ID de l’utilisateur dans Telegram <a href="#gde-vzyat-platform_id-dlya-otpravki-uvedomlenii"><strong>*</strong></a>. Pour les clients de chat, cette valeur se trouve dans la variable chat_member_id.</td></tr></tbody></table>

</details>

## Comment afficher les actions du bot à l’utilisateur (écrire/sélectionner un autocollant, etc.)

<details>

<summary>Description</summary>

**tg\_send\_chat\_action(platform\_id, bot\_action,  message\_thread\_id)**

<mark style="background-color:green;">**! Travaille avec un compte Telegram Business**</mark>

Paramètres :

<table><thead><tr><th width="286.74609375">Paramètre</th><th>Description</th></tr></thead><tbody><tr><td><mark style="color:red;"><strong>!</strong></mark><strong> platform_id</strong></td><td>ID du chat dans Telegram <a href="#gde-vzyat-platform_id-dlya-otpravki-uvedomlenii"><strong>*</strong></a>  </td></tr><tr><td><mark style="color:red;"><strong>!</strong></mark><strong> bot_action</strong></td><td>action du bot à partir de la liste</td></tr><tr><td><strong>message_thread_id</strong> </td><td>ID du sujet (disponible pour les supergroupes si la fonctionnalité forum est activée).</td></tr></tbody></table>

</details>

<details>

<summary><mark style="color:orange;">Liste des actions disponibles <strong>bot_action</strong></mark></summary>

***typing*** pour les messages texte, \
\&#xNAN;***upload\_photo*** pour les photos, \
\&#xNAN;***record\_video*** ou ***upload\_video*** pour les vidéos, \
\&#xNAN;***record\_voice*** ou ***upload\_voice*** pour les notes vocales, \
\&#xNAN;***upload\_document*** pour les documents courants, \
\&#xNAN;***choose\_sticker*** pour les autocollants, \
\&#xNAN;***find\_location*** pour les données de localisation, \
\&#xNAN;***record\_video\_note*** ou ***upload\_video\_note*** pour la note vidéo.&#x20;

</details>

{% hint style="info" %}
Cette notification s’affichera jusqu’à ce qu’une réponse soit reçue du bot, mais pendant 5 secondes maximum.
{% endhint %}

## Comment afficher une notification d’alerte à l’utilisateur

<details>

<summary>Description</summary>

**tg\_answer\_callback\_query(callback\_query\_id, text,show\_alert,cache\_time)**&#x20;

<table><thead><tr><th width="309.5234375">Paramètre</th><th>Description</th></tr></thead><tbody><tr><td><mark style="color:red;"><strong>!</strong></mark><strong> callback_query_id</strong> <strong>(obligatoire)</strong></td><td>Cet ID vous permet d’identifier la personne qui a cliqué sur le bouton et de lui afficher la notification d’alerte.</td></tr><tr><td><mark style="color:red;"><strong>!</strong></mark><strong> text (obligatoire)</strong> </td><td>Texte de la notification d’alerte.</td></tr><tr><td><strong>show_alert</strong></td><td>Indication d’une notification persistante (False — une notification de type infobulle qui s’estompe, True — une fenêtre de notification persistante)</td></tr><tr><td><strong>cache_time</strong></td><td>Durée maximale, en secondes, pendant laquelle le résultat d’une requête callback peut être mis en cache côté client. Les applications Telegram prendront en charge la mise en cache à partir de la version 3.14. La valeur par défaut est 0</td></tr></tbody></table>

</details>

<details>

<summary>Exemple</summary>

Les notifications d’alerte s’affichent uniquement à la suite d’un clic sur le bouton callback dans Telegram.

\
Par exemple, nous utilisons les boutons suivants :

\[{"line":0,"index\_in\_line":0,"text":"111","type":"inline","callback":"first"}, {"line":1,"index\_in\_line":0,"text":"222","type":"inline","callback":"second"}, {"line":2,"index\_in\_line":0,"text":"333","type":"inline","callback":"third"}]&#x20;

<figure><img src="/files/9b5334fc63577af15a00163142c35207881f8a12" alt="" width="563"><figcaption></figcaption></figure>

Après avoir cliqué sur un bouton, un callback arrive avec le texte contenu dans le champ correspondant. Lorsque vous cliquez sur le bouton « 111 », vous recevrez un callback avec le texte « first ».

<figure><img src="/files/34bbead60914975381b6cec5e71e3b85aa1dfd19" alt="" width="563"><figcaption></figcaption></figure>

Créons un bloc Start et indiquons le texte souhaité dans le déclencheur. Dans notre cas : **"first**

<figure><img src="/files/84c49e1d6604e12252dd23a87439f37d263de9e3" alt=""><figcaption></figcaption></figure>

Si dans le **Matches** champ vous sélectionnez **Ignorer les erreurs et les imprécisions**, ce bloc pourra ensuite être réutilisé pour toutes les variantes similaires qui diffèrent de 1 à 2 caractères. Par exemple, pour remercier l’utilisateur d’avoir fourni une note avec un tel bouton.

Ensuite, dans la calculatrice, utilisez la **tg\_answer\_callback\_query** fonction et passez les paramètres suivants :\
**callback\_query\_id** - cet ID vous permet d’identifier l’utilisateur qui a appuyé sur le bouton et de lui afficher une notification d’alerte              \
**text** - texte de la notification d’alerte.

<figure><img src="/files/5d966eaac75910d449f9db7130b735a5b4189d05" alt="" width="563"><figcaption></figcaption></figure>

Exemple de code à copier :

`tg_answer_callback_query('#{callback_query_id}', "Vous avez appuyé sur le bouton 111")`&#x20;

{% hint style="warning" %}
Attention ! Le paramètre callback\_query\_id doit être transmis exactement comme indiqué dans l’exemple, c’est-à-dire à l’intérieur de '#{}'
{% endhint %}

Si tout est configuré correctement, l’appui sur le bouton entraînera une notification d’alerte avec le texte spécifié. Dans la version mobile, le nom du bot apparaîtra comme en-tête au-dessus du texte.

<figure><img src="/files/70ca68caaa851a93e702a6281db02eaf178009f8" alt="" width="563"><figcaption></figcaption></figure>

Si vous souhaitez afficher un simple **message contextuel** à la place, passez **Faux** comme troisième paramètre, comme indiqué dans l’exemple ci-dessous :\
tg\_answer\_callback\_query('#{callback\_query\_id}', "Vous avez validé le bouton 222", False)

<figure><img src="/files/d525855e8c5bd73e16204f458a1ba32966345b97" alt="" width="563"><figcaption><p>Lorsque le bouton est pressé<br>avec ces paramètres, une notification de ce type<br>apparaîtra pendant quelques secondes.</p></figcaption></figure>

</details>

## Ajouter une redirection de bot avec un tag en tant que réponse du bouton callback

<details>

<summary>Description</summary>

**tg\_callback\_url\_open(callback\_query\_id, url, cache\_time)**

Paramètres :

<table><thead><tr><th width="309.5234375">Paramètres</th><th>Description</th></tr></thead><tbody><tr><td><mark style="color:red;"><strong>!</strong></mark><strong> callback_query_id</strong></td><td>Cet ID vous permet d’identifier la personne qui a cliqué sur le bouton et de lui afficher la notification d’alerte.</td></tr><tr><td><mark style="color:red;"><strong>!</strong></mark><strong> url</strong> </td><td>URL pointant vers le bot et un paramètre (format : t.me/your_bot?start=XXXX, où your_bot est le nom du bot)</td></tr><tr><td><strong>cache_time</strong></td><td>Durée maximale, en secondes, pendant laquelle le résultat d’une requête callback peut être mis en cache côté client. Les applications Telegram prendront en charge la mise en cache à partir de la version 3.14. La valeur par défaut est 0</td></tr></tbody></table>

</details>

<details>

<summary>Exemple</summary>

ВDans la réponse du bouton callback, vous pouvez ajouter une transition vers le bot à l’aide du tag thetg\_callback\_url\_open('#{callback\_query\_id}', 't.me/bot\_name?start=XXXX')

Par exemple, utilisons les boutons suivants :

\[{"line":0,"index\_in\_line":0,"text":"111","type":"inline","callback":"first"}, {"line":1,"index\_in\_line":0,"text":"222","type":"inline","callback":"second"}, {"line":2,"index\_in\_line":0,"text":"333","type":"inline","callback":"third"}]

<div data-with-frame="true"><figure><img src="/files/a2dd133cf4aff138ef6f1e496126cc02a6fc36ee" alt=""><figcaption></figcaption></figure></div>

Après avoir cliqué sur un bouton, un callback arrive avec le texte contenu dans le champ correspondant. Lorsque vous cliquez sur le bouton « 111 », vous recevrez un callback avec le texte « first ».

<div data-with-frame="true"><figure><img src="/files/34bbead60914975381b6cec5e71e3b85aa1dfd19" alt="" width="563"><figcaption></figcaption></figure></div>

Créez un bloc avec une vérification de condition principale et indiquez le texte souhaité dans la condition. Dans notre cas : « first » :

<div data-with-frame="true"><figure><img src="/files/e7931f10c28eba7dab15e5dbc78071e0e3067ce5" alt=""><figcaption></figcaption></figure></div>

Si dans le **Option correspondante** champ vous sélectionnez **Ignorer les erreurs et les imprécisions**, ce bloc pourra ensuite être réutilisé pour toutes les variantes similaires qui diffèrent de 1 à 2 caractères. Par exemple, pour remercier l’utilisateur d’avoir fourni une note avec un tel bouton.

Ensuite, dans la calculatrice du bloc, indiquez tg\_callback\_url\_open('#{callback\_query\_id}', 't.me/bot\_name?start=XXXX') :

<div data-with-frame="true"><figure><img src="/files/6f741ec91a513bb57832b73f11bbe67fe16fb98d" alt="" width="563"><figcaption></figcaption></figure></div>

</details>

## Comment promouvoir un utilisateur au rang d’administrateur dans un supergroupe ou un canal

<details>

<summary>Description</summary>

**tg\_promote\_user(platform\_id, user\_id, promote\_options\_list)**

Paramètres :

<table><thead><tr><th width="269.9765625">Paramètre</th><th width="515.17578125">Description</th></tr></thead><tbody><tr><td><mark style="color:red;"><strong>!</strong></mark><strong> platform_id</strong></td><td>l’identifiant d’un supergroupe ou, si utilisé dans un canal, le nom d’utilisateur du canal au format @channelusername dans Telegram <a href="#gde-vzyat-platform_id-dlya-otpravki-uvedomlenii"><strong>*</strong></a></td></tr><tr><td><mark style="color:red;"><strong>!</strong></mark><strong> user_id</strong></td><td>l’identifiant d’un utilisateur dans Telegram. <a href="#gde-vzyat-platform_id-dlya-otpravki-uvedomlenii"><strong>*</strong></a> </td></tr><tr><td><mark style="color:red;"><strong>!</strong></mark><strong> promote_options_list</strong></td><td>liste des autorisations à activer. </td></tr></tbody></table>

</details>

<details>

<summary><mark style="color:red;">Paramètre requis : <strong>promote_options_list</strong></mark></summary>

Les autorisations suivantes peuvent être spécifiées dans le **promote\_options\_list** :

1. **is\_anonymous** — masque la présence de l’administrateur dans le chat,&#x20;
2. **can\_manage\_chat** — l’administrateur peut accéder au journal des événements du chat, aux statistiques du chat, aux statistiques des messages dans les canaux, voir les membres du canal, voir les administrateurs anonymes dans les supergroupes et contourner le mode lent. Ce niveau d’autorisation est accordé par défaut si l’un des privilèges suivants est spécifié
3. **can\_post\_messages** — l’administrateur peut créer des publications de canal <mark style="color:red;">(canaux uniquement)</mark>
4. **can\_edit\_messages** — l’administrateur peut modifier les messages d’autres utilisateurs et épingler des messages <mark style="color:red;">(canaux uniquement)</mark>&#x20;
5. **can\_delete\_messages** — l’administrateur peut supprimer les messages d’autres utilisateurs
6. **can\_manage\_video\_chats** — l’administrateur peut gérer les discussions vidéo,
7. **can\_restrict\_members** — l’administrateur peut restreindre des membres, les bannir/débannir dans le chat,&#x20;
8. **can\_promote\_members** — l’administrateur peut nommer de nouveaux administrateurs avec un sous-ensemble de ses propres privilèges, ou rétrograder les administrateurs qu’il a nommés directement ou indirectement (par exemple, des administrateurs nommés par lui)
9. **can\_change\_info** — l’administrateur peut modifier le titre du chat, la photo et d’autres paramètres
10. **can\_invite\_users** — l’administrateur peut inviter de nouveaux utilisateurs dans le chat
11. **can\_pin\_messages** — l’administrateur peut épingler des messages <mark style="color:red;">(supergroupes uniquement).</mark>

</details>

<details>

<summary>Exemple</summary>

Exemple : promotion d’un utilisateur au rang d’administrateur dans un supergroupe :

<div data-with-frame="true"><figure><img src="/files/8e57c297bef7291c82987e5a61cd821345144b78" alt="" width="563"><figcaption></figcaption></figure></div>

Dans cet exemple, en plus des autorisations spécifiées, l’autorisation can\_manage\_chat sera accordée par défaut.

<div data-with-frame="true"><figure><img src="/files/5cec27612ad3185a411f648c3edf942fd5afd0fb" alt="" width="563"><figcaption><p>Attribution d’autorisations à un utilisateur</p></figcaption></figure></div>

<div data-with-frame="true"><figure><img src="/files/86a2bfc9f17b6e76cbf4b4a5cdd5c53ee54c4763" alt="" width="563"><figcaption><p>Définition d’un titre d’administrateur personnalisé</p></figcaption></figure></div>

Exemple de code à copier

<pre data-full-width="false"><code><strong>Exemple 1. 
</strong><strong>promote_options_list = ‘[“can_promote_members”,”can_change_info”,”can_invite_users”]’ 
</strong>tg_promote_user(platform_id, user_id, promote_options_list)

Exemple 2. 
promote_options_list = '["can_manage_chat","can_post_messages","can_edit_messages","can_delete_messages","can_manage_video_chats","can_promote_members","can_restrict_members","can_invite_users","can_pin_messages"]' 
result=tg_promote_user(platform_id, reply_from, promote_options_list)  
</code></pre>

</details>

## Comment modifier un titre d’administrateur à l’aide d’un bot dans Telegram

<details>

<summary>Description</summary>

**tg\_set\_administrator\_title(platform\_id, user\_id, title)** &#x20;

Paramètres :&#x20;

<table><thead><tr><th width="303.94921875">Paramètre</th><th>Description</th></tr></thead><tbody><tr><td><mark style="color:red;"><strong>!</strong></mark><strong> platform_id</strong></td><td>identifiant du supergroupe dans Telegram <a href="#gde-vzyat-platform_id-dlya-otpravki-uvedomlenii"><strong>*</strong></a> </td></tr><tr><td><mark style="color:red;"><strong>!</strong></mark><strong> user_id</strong></td><td>identifiant de l’utilisateur dans Telegram <a href="#gde-vzyat-platform_id-dlya-otpravki-uvedomlenii"><strong>*</strong></a>  </td></tr><tr><td><mark style="color:red;"><strong>!</strong></mark><strong> title</strong></td><td><p>titre d’administrateur</p><p>Restrictions pour le titre :</p><p>Longueur : 0 à 16 caractères, les emojis ne sont pas autorisés</p></td></tr></tbody></table>

{% hint style="warning" %}
IMPORTANT !&#x20;

Cela fonctionne uniquement pour les utilisateurs qui ont été promus administrateurs dans le supergroupe par le bot
{% endhint %}

Exemple de code à copier :

```
result=tg_set_administrator_title(platform_id, reply_from, "firetitle")
```

</details>

## Restrictions générales pour les membres réguliers du chat ou pour des utilisateurs Telegram spécifiques

<details>

<summary>Description</summary>

**tg\_chat\_permission(platform\_id, permission, media\_permissions)**

Paramètres :

<table><thead><tr><th width="318.76171875">Paramètre</th><th>Description</th></tr></thead><tbody><tr><td><mark style="color:red;"><strong>!</strong></mark><strong> platform_id</strong></td><td>identifiant du chat dans Telegram <a href="#gde-vzyat-platform_id-dlya-otpravki-uvedomlenii"><strong>*</strong></a> </td></tr><tr><td><mark style="color:red;"><strong>!</strong></mark><strong> permission</strong></td><td><p>un tableau de valeurs provenant de la liste des restrictions (voir ci-dessous).</p><p>1 = l’action est autorisée</p><p>0 = l’action est interdite</p><p>L’index du tableau correspond à la position dans la liste des restrictions</p></td></tr><tr><td><mark style="color:red;"><strong>!</strong></mark><strong> media_permissions</strong></td><td><p>un tableau de valeurs définissant les autorisations liées aux médias (voir les détails ci-dessous).</p><p>1 = l’action est autorisée</p><p>0 = l’action est interdite</p><p>L’index du tableau correspond à la position dans la liste des autorisations média</p></td></tr></tbody></table>

</details>

<details>

<summary><strong>Liste des restrictions pour le paramètre requis </strong><mark style="color:red;"><strong>permission</strong></mark></summary>

**Liste des restrictions pour** **permission :**\
1\. <mark style="color:red;">**!**</mark>**&#x20;can\_send\_messages** - autorisation d’envoyer des messages texte, des contacts, des emplacements et des lieux.\
2\. <mark style="color:red;">**!**</mark>**&#x20;can\_send\_media\_messages** - autorisation d’envoyer des fichiers audio, documents, photos, vidéos, notes vidéo et notes vocales. Elle nécessite **can\_send\_messages**\
3\. <mark style="color:red;">**!**</mark>**&#x20;can\_send\_polls** - autorisation d’envoyer des sondages. Elle nécessite **can\_send\_messages**\
4\. <mark style="color:red;">**!**</mark>**&#x20;can\_send\_other\_messages** - autorisation d’envoyer des animations, des jeux, des autocollants et d’utiliser des bots inline. Elle nécessite **can\_send\_media\_messages**\
5\. <mark style="color:red;">**!**</mark>**&#x20;can\_add\_web\_page\_previews** - autorisation d’ajouter des aperçus de pages Web aux messages. Elle nécessite **can\_send\_media\_messages**\
6\. <mark style="color:red;">**!**</mark>**&#x20;can\_change\_info** - autorisation de modifier le titre du chat, la photo et d’autres paramètres. Ceci est ignoré dans les supergroupes publics.\
7\. <mark style="color:red;">**!**</mark>**&#x20;can\_invite\_users** - autorisation d’inviter des utilisateurs\
8\. <mark style="color:red;">**!**</mark>**&#x20;can\_pin\_messages** - autorisation d’épingler des messages. Ceci est ignoré dans les supergroupes publics.\
9\. **can\_manage\_topics** - autorisation de créer des sujets dans les groupes de forum. Si elle est utilisée dans un groupe du mauvais type, la fonction échouera et renverra une erreur.

</details>

<details>

<summary><strong>Liste des valeurs pour le paramètre requis </strong><mark style="color:red;"><strong>media_permissions</strong></mark></summary>

#### Valeurs pour accorder des autorisations liées aux médias **media\_permissions :**&#x20;

1\. **can\_send\_audios** - autorisation d’envoyer des fichiers audio\
2\. **can\_send\_documents** - autorisation d’envoyer des documents\
3\. **can\_send\_photos** - autorisation d’envoyer des photos\
4\. **can\_send\_videos**  - autorisation d’envoyer des vidéos\
5\. **can\_send\_video\_notes** - autorisation d’envoyer des messages vidéo circulaires\
6\. **can\_send\_voice\_notes** - autorisation d’envoyer des messages vocaux

</details>

## Restrictions personnelles Telegram pour les utilisateurs réguliers du chat ou pour des utilisateurs Telegram spécifiques

<details>

<summary>Description</summary>

**tg\_restrict\_chat\_member(platform\_id, user\_id, minutes, permission, media\_permissions).**

Paramètres :

| Paramètre                                                   | Description                                                                                                                                                                                                                                 |
| ----------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <mark style="color:red;">**!**</mark>**&#x20;platform\_id** | ID du chat dans Telegram [**\***](#gde-vzyat-platform_id-dlya-otpravki-uvedomlenii)                                                                                                                                                         |
| <mark style="color:red;">**!**</mark>**&#x20;user\_id**     | ID de l’utilisateur dans Telegram [**\***](#gde-vzyat-platform_id-dlya-otpravki-uvedomlenii)                                                                                                                                                |
| **minutes**                                                 | le nombre de minutes pendant lesquelles la restriction restera active. Si vous ne définissez pas de valeur, la valeur par défaut est **3600**qui équivaut à **60 heures**. Si vous le définissez à **0**, la restriction devient permanente |
| **permission**                                              | un tableau de valeurs provenant de la [liste des restrictions d’autorisations](#list-of-restrictions-for-the-required-parameter-permission).                                                                                                |
| **media\_permissions**                                      | une liste de valeurs pour accorder des autorisations liées aux médias                                                                                                                                                                       |

</details>

<details>

<summary><strong>Liste des restrictions pour le paramètre requis </strong><mark style="color:red;"><strong>permission</strong></mark></summary>

**Liste des restrictions pour** **permission :**\
1\. <mark style="color:red;">**!**</mark>**&#x20;can\_send\_messages** - autorisation d’envoyer des messages texte, des contacts, des emplacements et des lieux.\
2\. <mark style="color:red;">**!**</mark>**&#x20;can\_send\_media\_messages** - autorisation d’envoyer des fichiers audio, documents, photos, vidéos, notes vidéo et notes vocales. Elle nécessite **can\_send\_messages**\
3\. <mark style="color:red;">**!**</mark>**&#x20;can\_send\_polls** - autorisation d’envoyer des sondages. Elle nécessite **can\_send\_messages**\
4\. <mark style="color:red;">**!**</mark>**&#x20;can\_send\_other\_messages** - autorisation d’envoyer des animations, des jeux, des autocollants et d’utiliser des bots inline. Elle nécessite **can\_send\_media\_messages**\
5\. <mark style="color:red;">**!**</mark>**&#x20;can\_add\_web\_page\_previews** - autorisation d’ajouter des aperçus de pages Web aux messages. Elle nécessite **can\_send\_media\_messages**\
6\. <mark style="color:red;">**!**</mark>**&#x20;can\_change\_info** - autorisation de modifier le titre du chat, la photo et d’autres paramètres. Ceci est ignoré dans les supergroupes publics.\
7\. <mark style="color:red;">**!**</mark>**&#x20;can\_invite\_users** - autorisation d’inviter des utilisateurs\
8\. <mark style="color:red;">**!**</mark>**&#x20;can\_pin\_messages** - autorisation d’épingler des messages. Ceci est ignoré dans les supergroupes publics.\
9\. **can\_manage\_topics** - autorisation de créer des sujets dans les groupes de forum. Si elle est utilisée dans un groupe du mauvais type, la fonction échouera et renverra une erreur.&#x20;

</details>

<details>

<summary>Liste des valeurs pour le paramètre requis <mark style="color:red;"><strong>media_permissions</strong></mark></summary>

#### Valeurs pour accorder des autorisations liées aux médias **media\_permissions :**&#x20;

1\. **can\_send\_audios** - autorisation d’envoyer des fichiers audio\
2\. **can\_send\_documents** - autorisation d’envoyer des documents\
3\. **can\_send\_photos** - autorisation d’envoyer des photos\
4\. **can\_send\_videos**  - autorisation d’envoyer des vidéos\
5\. **can\_send\_video\_notes** - autorisation d’envoyer des messages vidéo circulaires\
6\. **can\_send\_voice\_notes** - autorisation d’envoyer des messages vocaux

</details>

<details>

<summary>Exemple</summary>

Exemple d’utilisation de la fonction, où l’utilisateur est restreint de tout pendant 3 minutes :

<figure><img src="/files/a0b52762a92cec653b3246631834602652f62921" alt="" width="563"><figcaption></figcaption></figure>

Lorsque l’utilisateur entre dans le chat, il verra une notification indiquant qu’il ne peut pas envoyer de messages dans le chat.\
Si une limite de temps est définie, il verra également la durée de cette restriction.

<figure><img src="/files/2cf51207442d1e06d4e5459d80b6dc5586bb1d67" alt=""><figcaption></figcaption></figure>

Exemple de code à copier :

```
permission = [0, 0, 0, 0, 0, 0, 0, 0] 
tg_restrict_chat_member(-1001607137668, 473737685, 3, permission)
```

</details>

## Comment épingler un message

<details>

<summary>Description</summary>

**tg\_pin\_chat\_message(platform\_id, message\_id, disable\_notification)**&#x20;

Paramètres :

<table><thead><tr><th width="311.3359375">Paramètre</th><th>Description</th></tr></thead><tbody><tr><td><mark style="color:red;"><strong>!</strong></mark><strong> platform_id</strong></td><td>ID du chat dans Telegram  <a href="#gde-vzyat-platform_id-dlya-otpravki-uvedomlenii"><strong>*</strong></a></td></tr><tr><td><strong>message_id</strong></td><td>ID du message à épingler</td></tr><tr><td><strong>disable_notification</strong></td><td>Le paramètre définit si une notification doit être envoyée à tous les membres du chat au sujet d’un nouveau message épinglé (les notifications sont toujours désactivées dans les canaux et les chats privés).<br>Si vous ne souhaitez pas envoyer de notifications, définissez le paramètre <strong>disable_notification</strong> à <strong>1</strong>.<br>Sinon, définissez-le à <strong>0</strong>.</td></tr></tbody></table>

</details>

## Comment désépingler un message

<details>

<summary>Description</summary>

**tg\_unpin\_chat\_message(platform\_id, message\_id)**&#x20;

Paramètres :

<table><thead><tr><th width="311.3359375">Paramètre</th><th>Description</th></tr></thead><tbody><tr><td><mark style="color:red;"><strong>!</strong></mark><strong> platform_id</strong></td><td>ID du chat dans Telegram <a href="#gde-vzyat-platform_id-dlya-otpravki-uvedomlenii"><strong>*</strong></a></td></tr><tr><td><strong>message_id</strong></td><td>ID du message qui doit être désépinglé. Si message_id n’est pas fourni, le message épinglé le plus récent (par date d’envoi) sera désépinglé</td></tr></tbody></table>

</details>

## Comment désépingler tous les messages épinglés

<details>

<summary>Description</summary>

**tg\_unpin\_all(platform\_id)**

Paramètres :

<table><thead><tr><th width="311.3359375">Paramètre</th><th>Description</th></tr></thead><tbody><tr><td><mark style="color:red;"><strong>!</strong></mark><strong> platform_id</strong></td><td>ID du chat dans Telegram <a href="#gde-vzyat-platform_id-dlya-otpravki-uvedomlenii"><strong>*</strong></a></td></tr></tbody></table>

{% hint style="warning" %}
ATTENTION !

Telegram a une limitation pour les fonctions d’épinglage/désépinglage des messages.&#x20;

Les limites de temps pour l’utilisation de **tg\_pin\_chat\_message / tg\_unpin\_chat\_message / tg\_unpin\_all&#x20;**<mark style="color:red;">**ne sont PAS définies par le système MaviBot.**</mark>&#x20;

**Si le temps autorisé pour épingler un message est écoulé, la fonction renverra quand même true, mais Telegram n’appliquera pas le changement.**

Il est également important de noter que les messages épinglés peuvent rester en cache, ils peuvent donc ne pas disparaître visuellement immédiatement.
{% endhint %}

</details>

## Comment créer un sondage dans Telegram

<details>

<summary>Description</summary>

**tg\_send\_poll(platform\_id, question, options, is\_anonymous, allows\_multiple\_answers, reply\_markup, disable\_notification, protect\_content, token, reply\_to\_message\_id,  message\_thread\_id, business\_connection\_id)**

Paramètres :

<table><thead><tr><th width="311.3359375">Paramètre</th><th>Description</th></tr></thead><tbody><tr><td><mark style="color:red;"><strong>!</strong></mark><strong> platform_id</strong></td><td>ID du chat dans Telegram  <a href="#gde-vzyat-platform_id-dlya-otpravki-uvedomlenii"><strong>*</strong></a> </td></tr><tr><td><mark style="color:red;"><strong>!</strong></mark><strong> question</strong> </td><td>question</td></tr><tr><td><mark style="color:red;"><strong>!</strong></mark><strong> options</strong></td><td>un tableau d’options de réponse</td></tr><tr><td><strong>is_anonymous</strong></td><td>1 - sondage anonyme, '' - non anonyme </td></tr><tr><td><strong>allows_multiple_answers</strong></td><td>1 - plusieurs réponses sont possibles, '' - une seule réponse</td></tr><tr><td><strong>reply_markup</strong> </td><td>clavier ou '' - sans clavier </td></tr><tr><td><strong>disable_notification</strong></td><td>indicateur d’envoi avec notification sonore (par défaut 0)<br>1 – désactiver la notification à la réception, 0 – envoyer avec notification</td></tr><tr><td><strong>protect_content</strong></td><td>1 pour protéger contre la copie et les captures d’écran, '' aucune protection</td></tr><tr><td><strong>token</strong></td><td>jeton du bot ; s’il n’est pas fourni, celui en cours est utilisé</td></tr><tr><td>r<strong>eply_to_message_id</strong></td><td>ID du message cité</td></tr><tr><td><strong>message_thread_id</strong></td><td>ID du sujet (disponible pour les supergroupes si la fonctionnalité forum existe)</td></tr><tr><td><strong>business_connection_id</strong></td><td>valeur lors de la connexion d’un bot (Business ID). S’affiche dans les canaux. Doit être fourni si le jeton du bot est utilisé et que le message doit être envoyé via un compte utilisateur connecté au bot</td></tr></tbody></table>

</details>

<details>

<summary>Important à savoir !</summary>

Remarques

1\. La fonction renvoie une réponse de Telegram avec **message\_id**. Il est préférable de la sauvegarder. En utilisant message\_id, vous pouvez arrêter le sondage avec **tg\_stop\_poll** (voir la description ci-dessous) et obtenir le résultat.

2\. Si un utilisateur ajoute un sondage dans un messager, un callback est envoyé au chat :

**poll\_added** - partie inchangée \
YOUR QUESTION - texte de la question du sondage

<div data-with-frame="true"><figure><img src="/files/1070ded713d5a5da4115a589a4236e8451d9892a" alt="" width="375"><figcaption></figcaption></figure></div>

Exemple de callback lors de l’ajout d’un sondage dans un canal

<div data-with-frame="true"><figure><img src="/files/b96aec76548e3d76130320e49430e14143febfe1" alt="" width="375"><figcaption></figcaption></figure></div>

Exemple de callback lors de l’ajout d’un sondage dans un chat

<div data-with-frame="true"><figure><img src="/files/31157fafc54f7cbea1a05aa746eb2df53e446ae8" alt="" width="563"><figcaption></figcaption></figure></div>

Le deuxième callback après poll\_added contient des chiffres - ce n’est rien d’autre que l’identifiant de l’utilisateur dans Telegram qui a ajouté le sondage.

{% hint style="warning" %}
**Lors de la création d’un sondage par le bot, aucun callback n’est envoyé.**
{% endhint %}

&#x33;**.** Dans un canal, on peut créer uniquement des sondages anonymes

{% hint style="info" %}
**Attention, il est recommandé d’envoyer dans le groupe uniquement des sondages anonymes !**
{% endhint %}

4\. Après avoir créé le sondage, enregistrez son identifiant dans une variable afin de comprendre à quel sondage le callback est arrivé.

</details>

<details>

<summary>Exemple</summary>

Les retours clients sont essentiels à notre croissance. Les sondages offrent une méthode simple pour recueillir ces retours et les transformer en conclusions commerciales concrètes.

Exemple de code à copier :

```
/* Exemple de création d’un sondage simple */
options = ["white", "red", "blue", "green"]
poll1 = tg_send_poll(platform_id, 'Quelle est votre couleur préférée ?', options, 1, '', '', 1, '')
```

**Fonction pour créer un sondage dans Telegram :**

<div data-with-frame="true"><figure><img src="/files/29ed0ee4c4c000d59bfde98989f14c6bc78fbfaa" alt="" width="563"><figcaption></figcaption></figure></div>

**Le sondage que nous avons créé dans Telegram**

<div data-with-frame="true"><figure><img src="/files/f28f56d391ebf39ba3fd1cef9de56a34eb8f17cb" alt="" width="563"><figcaption></figcaption></figure></div>

</details>

## Comment créer un quiz dans Telegram

<details>

<summary>Description</summary>

**tg\_send\_quiz\_poll(platform\_id, question, options, explanation, correct\_option\_id, is\_anonymous, reply\_markup, parse\_mode, protect\_content, disable\_notification, token, reply\_to\_message\_id, message\_thread\_id )**

Paramètres :&#x20;

<table><thead><tr><th width="311.25">Paramètre</th><th>Description</th></tr></thead><tbody><tr><td><mark style="color:red;"><strong>!</strong></mark><strong> platform_id</strong> </td><td>ID du chat dans Telegram <a href="#gde-vzyat-platform_id-dlya-otpravki-uvedomlenii"><strong>*</strong></a></td></tr><tr><td><mark style="color:red;"><strong>!</strong></mark><strong> question</strong> </td><td>question</td></tr><tr><td><mark style="color:red;"><strong>!</strong></mark><strong> options</strong></td><td>un tableau d’options de réponse</td></tr><tr><td><mark style="color:red;"><strong>!</strong></mark><strong> explanation</strong></td><td>texte affiché lorsqu’un utilisateur sélectionne une mauvaise réponse ou clique sur l’icône de la lampe dans un quiz, 0 à 200 caractères avec pas plus de deux sauts de ligne après l’analyse des entités.</td></tr><tr><td><mark style="color:red;"><strong>!</strong></mark><strong> correct_option_id</strong></td><td>numéro de la bonne réponse, numérotation à partir de 1</td></tr><tr><td><strong>is_anonymous</strong></td><td>1 - sondage anonyme, '' - non anonyme </td></tr><tr><td><strong>reply_markup</strong></td><td>clavier ou '' - sans clavier </td></tr><tr><td><strong>parse_mode</strong></td><td>format d’explication : <code>markdown</code>, <code>html</code>, ou <code>''</code> (chaîne vide pour aucun formatage)</td></tr><tr><td><strong>protect_content</strong></td><td>1 pour protéger contre la copie et les captures d’écran, '' aucune protection</td></tr><tr><td><strong>disable_notification</strong></td><td>indicateur d’envoi avec notification sonore (par défaut 0)<br>1 – désactiver la notification à la réception, 0 – envoyer avec notification</td></tr><tr><td><strong>token</strong></td><td>jeton du bot ; s’il n’est pas fourni, celui en cours est utilisé</td></tr><tr><td><strong>reply_to_message_id</strong></td><td>ID du message cité</td></tr><tr><td><strong>message_thread_id</strong></td><td>ID du sujet (disponible dans les supergroupes avec les fonctions forum actives)</td></tr></tbody></table>

</details>

<details>

<summary><mark style="color:orange;">Important à savoir !</mark></summary>

#### **Remarques**

**1. Enregistrez le `message_id`**

La fonction API renvoie une réponse de Telegram contenant un **`message_id`**. Enregistrez toujours cet ID, car il est nécessaire pour :

* Terminer le quiz à l’aide de la `tg_stop_poll` fonction (voir la description ci-dessous).
* Récupérer les résultats finaux.

**2. Callback `poll_added`**

Si un utilisateur ajoute un sondage à un **canal**, le bot reçoit un callback :

* **Format :** `poll_added` + **Question du sondage**
* **S’il est ajouté à un chat de groupe :** le callback inclut également le **Telegram User ID** de la personne qui a ajouté le sondage.

{% hint style="warning" %}
**S’il est créé par le bot :** Aucun `poll_added` callback n’est envoyé.
{% endhint %}

**3. Restriction de canal**

Seuls **les quiz anonymes** peuvent être créés dans les canaux.

**4. Callback `poll_answer` (vote de l’utilisateur)**

Lorsqu’un utilisateur vote dans un quiz envoyé à un **chat privé** ou **group**, un callback est envoyé au dialogue du bot avec ce client :

* **Format :** `poll_answer` + **ID du sondage** + **\[Index de la réponse]**
* **Exemple :** `poll_answer 5325838371359031648 [3]`
* **Remarque :** la numérotation des réponses commence à **0**. `[3]` signifie que l’utilisateur a sélectionné la quatrième option de réponse.

**5. Webhook pour les sondages de groupe non anonymes**

Pour **les sondages non anonymes** dans les groupes où le bot est administrateur, un webhook est envoyé pour *chaque vote*. À la réception, le bot transmettra le `poll_answer` callback (comme au point 4) à son dialogue avec le client correspondant.

**6. Exigence d’activation et bonne pratique**

* **Exigence :** un bot ne peut pas initier une conversation. Si un client n’a jamais contacté le bot, vous ne pouvez pas lui envoyer de message direct en réponse à son vote tant qu’il n’a pas **activé le bot au préalable** (par exemple, en envoyant une `/start` commande).

{% hint style="info" %}
**Recommandation :** pour éviter cette limitation, il est **fortement recommandé d’envoyer uniquement des quiz anonymes aux groupes.**
{% endhint %}

**7. Suivez vos sondages**

Immédiatement après avoir créé un quiz, enregistrez son **ID du sondage** unique dans une variable. Cela vous permet d’identifier à quel sondage précis se réfère un callback entrant.

</details>

<details>

<summary>Exemple</summary>

Exemple de code à copier.

```
options = ["white", "red", "blue", "green"] 
r = tg_send_quiz_poll(platform_id, "Quelle couleur est un crocodile ?", options, "Voici l’explication", 4, '', '', '', '', 1)
```

Exemple : création d’un quiz.

<div data-with-frame="true"><figure><img src="/files/d64dccbad42dee3fc4f660cb0f643d107fa38438" alt=""><figcaption></figcaption></figure></div>

</details>

## Comment terminer un sondage

<details>

<summary>Description</summary>

**tg\_stop\_poll(platform\_id, message\_id)**

Paramètres :

<table><thead><tr><th width="303.45703125">Paramètre</th><th>Description</th></tr></thead><tbody><tr><td><mark style="color:red;"><strong>!</strong></mark><strong> platform_id</strong></td><td>ID du chat dans Telegram <a href="#gde-vzyat-platform_id-dlya-otpravki-uvedomlenii"><strong>*</strong></a></td></tr><tr><td><mark style="color:red;"><strong>!</strong></mark><strong> message_id</strong></td><td>ID du message du sondage/quiz. Il peut être obtenu à partir du webhook</td></tr></tbody></table>

{% hint style="info" %}
Appeler cette fonction pour terminer un sondage/quiz renvoie un dictionnaire contenant les résultats finaux.
{% endhint %}

</details>

## Comment travailler avec les sujets dans Telegram

{% hint style="warning" %}
Important : le sujet principal du groupe n’a pas d’ID et nécessite des fonctions distinctes pour être utilisé.
{% endhint %}

### Comment renommer le Sujet Général du groupe

<details>

<summary>Description</summary>

**tg\_edit\_general\_forum\_topic(platform\_id, topic\_name)**

Paramètres :

<table><thead><tr><th width="303.1171875">Paramètre</th><th>Description</th></tr></thead><tbody><tr><td><mark style="color:red;"><strong>!</strong></mark><strong> platform_id</strong></td><td>ID du chat dans Telegram <a href="#gde-vzyat-platform_id-dlya-otpravki-uvedomlenii"><strong>*</strong></a></td></tr><tr><td><mark style="color:red;"><strong>!</strong></mark><strong> topic_name</strong></td><td>nouveau nom du sujet</td></tr><tr><td>bot_name</td><td><p>paramètre facultatif : nom du bot.</p><p>Lorsque vous travaillez avec des sujets, vous pouvez préciser quel bot doit exécuter la fonction. C’est utile si votre projet utilise plusieurs bots Telegram. Trouvez le nom du bot dans la section « Channels », dans le champ « Group ID ».</p></td></tr></tbody></table>

</details>

<details>

<summary>Exemple</summary>

Le Sujet Général des groupes peut être modifié à l’aide de la `tg_edit_general_forum_topic()` fonction. Elle requiert deux paramètres obligatoires : l’ID du chat et le nouveau nom du Sujet du Groupe :

<div data-with-frame="true"><figure><img src="/files/b9ec1f3671b519b889af90ee5ab67f544b186d55" alt="" width="563"><figcaption></figcaption></figure></div>

</details>

<details>

<summary>Exemple de code à copier</summary>

*renommer le chat du Sujet Général*/\
`answer = tg_edit_general_forum_topic(-1001839380031, 'General')`

</details>

### Comment fermer le Sujet Général

<details>

<summary>Description</summary>

**tg\_close\_general\_forum\_topic(platform\_id)**

Paramètres :

<table><thead><tr><th width="315.3203125">Paramètre</th><th>Description</th></tr></thead><tbody><tr><td><mark style="color:red;"><strong>!</strong></mark><strong> platform_id</strong> </td><td>ID du chat dans Telegram <a href="#gde-vzyat-platform_id-dlya-otpravki-uvedomlenii"><strong>*</strong></a></td></tr><tr><td>bot_name</td><td><p>paramètre facultatif : nom du bot.</p><p>Lorsque vous travaillez avec des sujets, vous pouvez préciser quel bot doit exécuter la fonction. C’est utile si votre projet utilise plusieurs bots Telegram. Trouvez le nom du bot dans la section « Channels », dans le champ « Group ID ».</p></td></tr></tbody></table>

</details>

<details>

<summary>Exemple de code à copier</summary>

/*fermer le chat du Sujet Général*/\
`answer = tg_close_general_forum_topic(-1001839380031)`

</details>

### Comment rouvrir un Sujet Général précédemment fermé

<details>

<summary>Description</summary>

**tg\_reopen\_general\_forum\_topic(platform\_id)**&#x20;

Paramètres :

<table><thead><tr><th width="315.3203125">Paramètre</th><th>Description</th></tr></thead><tbody><tr><td><mark style="color:red;"><strong>!</strong></mark><strong> platform_id</strong> </td><td>ID du chat dans Telegram <a href="#gde-vzyat-platform_id-dlya-otpravki-uvedomlenii"><strong>*</strong></a></td></tr><tr><td>bot_name</td><td><p>paramètre facultatif : nom du bot.</p><p>Lorsque vous travaillez avec des sujets, vous pouvez préciser quel bot doit exécuter la fonction. C’est utile si votre projet utilise plusieurs bots Telegram. Trouvez le nom du bot dans la section « Channels », dans le champ « Group ID ».</p></td></tr></tbody></table>

</details>

<details>

<summary>Exemple de code à copier</summary>

/*rouvrir le chat du Sujet Général*/\
`answer = tg_reopen_general_forum_topic(-1001839380031)`

</details>

### Comment masquer le Sujet Général

<details>

<summary>Description</summary>

**tg\_hide\_general\_forum\_topic(platform\_id)**&#x20;

Paramètres :

<table><thead><tr><th width="315.3203125">Paramètre</th><th>Description</th></tr></thead><tbody><tr><td><mark style="color:red;"><strong>!</strong></mark><strong> platform_id</strong> </td><td>ID du chat dans Telegram <a href="#gde-vzyat-platform_id-dlya-otpravki-uvedomlenii"><strong>*</strong></a></td></tr><tr><td>bot_name</td><td><p>paramètre facultatif : nom du bot.</p><p>Lorsque vous travaillez avec des sujets, vous pouvez préciser quel bot doit exécuter la fonction. C’est utile si votre projet utilise plusieurs bots Telegram. Trouvez le nom du bot dans la section « Channels », dans le champ « Group ID ».</p></td></tr></tbody></table>

Le chat du Sujet Général peut être fermé pour les participants du sujet (ils peuvent lire mais pas écrire) et masqué de la liste générale des chats Telegram pour les nouveaux utilisateurs.

</details>

<details>

<summary>Exemple de code à copier</summary>

/masquer le chat du Sujet Général/\
`answer = tg_hide_general_forum_topic(-1001839380031)`

</details>

### **Comment afficher le Sujet Général ou restaurer sa visibilité**

<details>

<summary>Description</summary>

**tg\_unhide\_general\_forum\_topic(platform\_id)**&#x20;

Paramètres :

<table><thead><tr><th width="315.3203125">Paramètre</th><th>Description</th></tr></thead><tbody><tr><td><mark style="color:red;"><strong>!</strong></mark><strong> platform_id</strong> </td><td>ID du sujet dans Telegram <a href="#gde-vzyat-platform_id-dlya-otpravki-uvedomlenii"><strong>*</strong></a></td></tr><tr><td>bot_name</td><td><p>paramètre facultatif : nom du bot.</p><p>Lorsque vous travaillez avec des sujets, vous pouvez préciser quel bot doit exécuter la fonction. C’est utile si votre projet utilise plusieurs bots Telegram. Trouvez le nom du bot dans la section « Channels », dans le champ « Group ID ».</p></td></tr></tbody></table>

{% hint style="warning" %} <mark style="color:red;">**Important !**</mark>&#x20;

Cette fonction ne rouvre pas le Sujet Général ; elle le rend seulement visible.
{% endhint %}

</details>

<details>

<summary>Exemple de code à copier</summary>

/*afficher le chat du Sujet Général*/\
`answer = tg_unhide_general_forum_topic(-1001839380031)`

</details>

### Comment créer un nouveau sujet dans Telegram

<details>

<summary>Description</summary>

**tg\_create\_forum\_topic(platform\_id, name, icon, icon\_color)**&#x20;

Paramètres :

<table><thead><tr><th width="312.953125">Paramètre</th><th>Description</th></tr></thead><tbody><tr><td><mark style="color:red;"><strong>!</strong></mark><strong> platform_id</strong></td><td>ID du chat dans Telegram <a href="#gde-vzyat-platform_id-dlya-otpravki-uvedomlenii"><strong>*</strong></a></td></tr><tr><td><mark style="color:red;"><strong>!</strong></mark><strong> name</strong></td><td>nouveau nom du sujet</td></tr><tr><td><strong>icon</strong></td><td>identifiant emoji à définir pour le sujet. Passé sous forme de chaîne. Vous ne pouvez utiliser que les emojis de la liste récupérée par la <code>tg_get_forum_icon</code> fonction.</td></tr><tr><td><strong>icon_color</strong></td><td>couleur de l’emoji parmi la liste : 7322096, 16766590, 13338331, 9367192, 16749490, 16478047. Tous les emojis ne prennent pas en charge les changements de couleur.</td></tr><tr><td>bot_name </td><td><p>paramètre facultatif : nom du bot.</p><p>Lorsque vous travaillez avec des sujets, vous pouvez préciser quel bot doit exécuter la fonction. C’est utile si votre projet utilise plusieurs bots Telegram. Trouvez le nom du bot dans la section « Channels », dans le champ « Group ID ».</p></td></tr></tbody></table>

{% hint style="info" %}
La couleur définie ne peut pas être modifiée ; la couleur ne peut être attribuée qu’au moment de la création du sujet.
{% endhint %}

Une fois exécutée, la fonction renverra une réponse contenant les paramètres du nouveau sujet, y compris l’ID du sujet (nécessaire pour diverses fonctions).

</details>

<details>

<summary>Exemple de code à copier</summary>

Pour créer un chat de sujet supplémentaire\
`answer = tg_create_forum_topic(-1001839380031, 'second_bot_topic', None, 7322096)`

Pour enregistrer l’ID du chat de sujet supplémentaire créé\
`answer={"ok":true,"result":{"message_thread_id":254,"name":"second_bot_topic","icon_color":7322096}}/`\
`idtema1=answer['result']['message_thread_id']`

</details>

### Comment modifier un sujet. Comment renommer et/ou changer l’emoji d’un sujet

<details>

<summary>Description</summary>

**tg\_edit\_forum\_topic(platform\_id, message\_thread\_id, name, icon)**&#x20;

Paramètres :

<table><thead><tr><th width="301.7578125">Paramètre</th><th>Description</th></tr></thead><tbody><tr><td><mark style="color:red;"><strong>!</strong></mark><strong> platform_id</strong></td><td>ID du chat dans Telegram <a href="#gde-vzyat-platform_id-dlya-otpravki-uvedomlenii"><strong>*</strong></a></td></tr><tr><td><mark style="color:red;"><strong>!</strong></mark><strong> message_thread_id</strong></td><td>ID du chat du sujet supplémentaire</td></tr><tr><td><strong>name</strong></td><td>nouveau nom du sujet</td></tr><tr><td><strong>icon</strong></td><td>identifiant emoji à définir pour le sujet. Passé sous forme de chaîne. Vous ne pouvez utiliser que les emojis de la liste récupérée par la <code>tg_get_forum_icon</code> fonction.</td></tr><tr><td>bot_name</td><td><p>paramètre facultatif : nom du bot.</p><p>Lorsque vous travaillez avec des sujets, vous pouvez préciser quel bot doit exécuter la fonction. C’est utile si votre projet utilise plusieurs bots Telegram. Trouvez le nom du bot dans la section « Channels », dans le champ « Group ID ».</p></td></tr></tbody></table>

</details>

<details>

<summary>Exemple de code à copier</summary>

`answer = tg_edit_forum_topic(-1001839380031, 254)`

</details>

### Comment fermer un sujet sélectionné

<details>

<summary>Description</summary>

Fermer un sujet signifie le rendre en lecture seule ; l’écriture dans un sujet fermé n’est pas autorisée.

**tg\_close\_forum\_topic(platform\_id, message\_thread\_id)**&#x20;

Paramètres :

<table><thead><tr><th width="300.9765625">Paramètre</th><th>Description</th></tr></thead><tbody><tr><td><mark style="color:red;"><strong>!</strong></mark><strong> platform_id</strong></td><td>ID du chat dans Telegram <a href="#gde-vzyat-platform_id-dlya-otpravki-uvedomlenii"><strong>*</strong></a></td></tr><tr><td><mark style="color:red;"><strong>!</strong></mark><strong> message_thread_id</strong></td><td>ID du chat du sujet supplémentaire</td></tr><tr><td>bot_name</td><td><p>paramètre facultatif : nom du bot.</p><p>Lorsque vous travaillez avec des sujets, vous pouvez préciser quel bot doit exécuter la fonction. C’est utile si votre projet utilise plusieurs bots Telegram. Trouvez le nom du bot dans la section « Channels », dans le champ « Group ID ».</p></td></tr></tbody></table>

</details>

<details>

<summary>Exemple de code à copier</summary>

`answer = tg_close_forum_topic(-1001839380031, 254)`

</details>

### Comment rouvrir un sujet précédemment fermé

<details>

<summary>Description</summary>

**tg\_reopen\_forum\_topic(platform\_id, message\_thread\_id)**&#x20;

Paramètres :

<table><thead><tr><th width="300.9765625">Paramètre</th><th>Description</th></tr></thead><tbody><tr><td><mark style="color:red;"><strong>!</strong></mark><strong> platform_id</strong></td><td>ID du chat dans Telegram <a href="#gde-vzyat-platform_id-dlya-otpravki-uvedomlenii"><strong>*</strong></a></td></tr><tr><td><mark style="color:red;"><strong>!</strong></mark><strong> message_thread_id</strong></td><td>ID du chat du sujet supplémentaire</td></tr><tr><td>bot_name</td><td><p>paramètre facultatif : nom du bot.</p><p>Lorsque vous travaillez avec des sujets, vous pouvez préciser quel bot doit exécuter la fonction. C’est utile si votre projet utilise plusieurs bots Telegram. Trouvez le nom du bot dans la section « Channels », dans le champ « Group ID ».</p></td></tr></tbody></table>

</details>

<details>

<summary>Exemple de code à copier</summary>

`answer = tg_reopen_forum_topic(-1001839380031, 254)`

</details>

### Comment supprimer un sujet et tous ses messages

<details>

<summary>Description</summary>

**tg\_delete\_forum\_topic(platform\_id, message\_thread\_id)**&#x20;

Paramètres :

<table><thead><tr><th width="300.9765625">Paramètre</th><th>Description</th></tr></thead><tbody><tr><td><mark style="color:red;"><strong>!</strong></mark><strong> platform_id</strong></td><td>ID du chat dans Telegram <a href="#gde-vzyat-platform_id-dlya-otpravki-uvedomlenii"><strong>*</strong></a></td></tr><tr><td><mark style="color:red;"><strong>!</strong></mark><strong> message_thread_id</strong></td><td>ID du chat du sujet supplémentaire</td></tr><tr><td>bot_name</td><td><p>paramètre facultatif : nom du bot.</p><p>Lorsque vous travaillez avec des sujets, vous pouvez préciser quel bot doit exécuter la fonction. C’est utile si votre projet utilise plusieurs bots Telegram. Trouvez le nom du bot dans la section « Channels », dans le champ « Group ID ».</p></td></tr></tbody></table>

</details>

<details>

<summary>Exemple de code à copier</summary>

`answer = tg_delete_forum_topic(-1001839380031, 254)`

</details>

### Comment désépingler tous les messages d’un sujet

<details>

<summary>Description</summary>

**tg\_unpin\_topic\_messages(platform\_id, message\_thread\_id)**&#x20;

Paramètres :

<table><thead><tr><th width="300.9765625">Paramètre</th><th>Description</th></tr></thead><tbody><tr><td><mark style="color:red;"><strong>!</strong></mark><strong> platform_id</strong></td><td>ID du chat dans Telegram <a href="#gde-vzyat-platform_id-dlya-otpravki-uvedomlenii"><strong>*</strong></a></td></tr><tr><td><mark style="color:red;"><strong>!</strong></mark><strong> message_thread_id</strong></td><td>ID du chat du sujet supplémentaire</td></tr><tr><td>bot_name</td><td><p>paramètre facultatif : nom du bot.</p><p>Lorsque vous travaillez avec des sujets, vous pouvez préciser quel bot doit exécuter la fonction. C’est utile si votre projet utilise plusieurs bots Telegram. Trouvez le nom du bot dans la section « Channels », dans le champ « Group ID ».</p></td></tr></tbody></table>

</details>

<details>

<summary>Exemple de code à copier</summary>

`answer = tg_unpin_topic_messages(-1001839380031, 254)`

</details>

### Comment obtenir la liste des emojis pour un sujet Telegram

<details>

<summary>Description</summary>

<mark style="background-color:blue;">**Comment obtenir la liste des emojis**</mark>

`tg_get_forum_icon()` – cette fonction renvoie une liste d’emojis disponibles pour être utilisés comme icônes de sujet de forum. Le résultat doit être assigné à une variable, car elle renvoie un dictionnaire où chaque clé est un emoji et sa valeur correspondante est l’identifiant unique de l’emoji (`id`).

Paramètres : <mark style="color:green;">**aucun.**</mark>&#x20;

</details>

<details>

<summary>Le contenu de la liste des emojis</summary>

Pour obtenir la liste des emojis pour un chat de sujet, envoyez la commande au chat concerné.

<div data-with-frame="true"><figure><img src="/files/e18e759c7703f88a79fd5a3de3878825d7af83ef" alt="" width="563"><figcaption></figcaption></figure></div>

La fonction renverra la liste des emojis dans sa réponse. Cela signifie que la variable `answer` contiendra un dictionnaire comme valeur.

{'📰': '5434144690511290129', '💡': '5312536423851630001', '⚡️': '5312016608254762256', '🎙': '5377544228505134960', '🔝': '5418085807791545980', '🗣': '5368697802761185083', '🆒': '5420216386448270341', '❗️': '5379748062124056162', '📝': '5357193964787081133', '📆': '5433614043006903194', '📁': '5357315181649076022', '🔎': '5309965701241379366', '📣': '5309984423003823246', '🔥': '5312241539987020022', '❤️': '5312138559556164615', '❓': '5377316857231450742', '📈': '5350305691942788490', '📉': '5350713563512052787', '💎': '5309958691854754293', '💰': '5350452584119279096', '💸': '5309929258443874898', '\U0001fa99': '5377690785674175481', '💱': '5310107765874632305', '⁉️': '5377438129928020693', '🎮': '5309950797704865693', '💻': '5350554349074391003', '📱': '5409357944619802453', '🚗': '5312322066328853156', '🏠': '5312486108309757006', '💘': '5310029292527164639', '🎉': '5310228579009699834', '‼️': '5377498341074542641', '🏆': '5312315739842026755', '🏁': '5408906741125490282', '🎬': '5368653135101310687', '🎵': '5310045076531978942', '🔞': '5420331611830886484', '📚': '5350481781306958339', '👑': '5357107601584693888', '⚽️': '5375159220280762629', '🏀': '5384327463629233871', '📺': '5350513667144163474', '👀': '5357121491508928442', '\U0001fae6': '5357185426392096577', '🍓': '5310157398516703416', '💄': '5310262535021142850', '👠': '5368741306484925109', '✈️': '5348436127038579546', '\U0001f9f3': '5357120306097956843', '🏖': '5310303848311562896', '⛅️': '5350424168615649565', '🦄': '5413625003218313783', '🛍': '5350699789551935589', '👜': '5377478880577724584', '🛒': '5431492767249342908', '🚂': '5350497316203668441', '🛥': '5350422527938141909', '🏔': '5418196338774907917', '🏕': '5350648297189023928', '🤖': '5309832892262654231', '\U0001faa9': '5350751634102166060', '🎟': '5377624166436445368', '🏴\u200d☠️': '5386395194029515402', '🗳': '5350387571199319521', '🎓': '5357419403325481346', '🔭': '5368585403467048206', '🔬': '5377580546748588396', '🎶': '5377317729109811382', '🎤': '5382003830487523366', '🕺': '5357298525765902091', '💃': '5357370526597653193', '\U0001fa96': '5357188789351490453', '💼': '5348227245599105972', '\U0001f9ea': '5411138633765757782', '👨\u200d👩\u200d👧\u200d👦': '5386435923204382258', '👶': '5377675010259297233', '🤰': '5386609083400856174', '💅': '5368808634392257474', '🏛': '5350548830041415279', '\U0001f9ee': '5355127101970194557', '🖨': '5386379624773066504', '👮\u200d♂️': '5377494501373780436', '\U0001fa7a': '5350307998340226571', '💊': '5310094636159607472', '💉': '5310139157790596888', '\U0001f9fc': '5377468357907849200', '\U0001faaa': '5418115271267197333', '🛃': '5370947704199323325', '🍽': '5350344462612570293', '🐟': '5384574037701696503', '🎨': '5310039132297242441', '🎭': '5350658016700013471', '🎩': '5357504778685392027', '🔮': '5350367161514732241', '🍹': '5350520238444126134', '🎂': '5310132165583840589', '☕️': '5350392020785437399', '🍣': '5350406176997646350', '🍔': '5350403544182694064', '🍕': '5350444672789519765', '\U0001f9a0': '5312424913615723286', '💬': '5417915203100613993', '🎄': '5312054580060625569', '🎃': '5309744892677727325'}

</details>

<details>

<summary>Exemple de code à copier</summary>

```
answer = tg_get_forum_icon()
```

</details>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.mavibot.ai/doc/fr/chatbot/messageries/telegram/api/chat.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
