# Créer un chatbot IA OnlyFans avec l'API : webhook, LLM, envoi de message

> Créez un chatbot IA OnlyFans : reliez le webhook messages.received à un LLM et à OnlyFansAPI pour des réponses automatiques évolutives et événementielles.

**En bref**

- Écoutez le webhook `messages.received` (à partir du plan Basic) pour déclencher une réponse automatique chaque fois qu'un fan envoie un message.
- Renvoyez immédiatement un statut HTTP 200 OK pour éviter les expirations du webhook, puis traitez la requête LLM dans une file d'attente de tâches en arrière-plan.
- Abonnez-vous aux événements `users.typing` et ajoutez un délai anti-rebond de 5 à 10 secondes pour ne pas interrompre les fans avant qu'ils aient fini d'écrire.
- Ajoutez un en-tête `Idempotency-Key` unique lors de l'envoi du message final pour éviter les envois en double lors des nouvelles tentatives réseau.
- Envoyez des messages payants en fixant le `price` entre 3 et 200 et en incluant `mediaFiles`, sauf si `lockedText` vaut true.

Créer un chatbot IA pour OnlyFans demande de configurer un webhook (à partir du plan Basic) pour recevoir les messages des fans en quasi temps réel, de transmettre le texte à un grand modèle de langage (LLM) pour traitement, puis d'envoyer la réponse générée via une API REST. Les développeurs relient ce pipeline automatisé en s'abonnant au webhook `messages.received` et en renvoyant les réponses via l'endpoint `POST /api/{account}/chats/{chat_id}/messages` avec [OnlyFansAPI](https://onlyfansapi.com).

**Points clés**

- Écoutez le webhook `messages.received` (à partir du plan Basic) pour déclencher une réponse automatique chaque fois qu'un fan envoie un message.
- Renvoyez immédiatement un statut HTTP 200 OK pour éviter les expirations du webhook, puis traitez la requête LLM dans une file d'attente de tâches en arrière-plan.
- Abonnez-vous aux événements `users.typing` et ajoutez un délai anti-rebond de 5 à 10 secondes pour ne pas interrompre les fans avant qu'ils aient fini d'écrire.
- Ajoutez un en-tête `Idempotency-Key` unique lors de l'envoi du message final pour éviter les envois en double lors des nouvelles tentatives réseau.
- Envoyez des messages payants en fixant le `price` entre 3 et 200 et en incluant `mediaFiles`, sauf si `lockedText` vaut true.

## Comment créer un chatbot IA pour OnlyFans

Pour créer un chatbot IA pour OnlyFans, les développeurs doivent relier un webhook entrant `messages.received` à une file d'attente en arrière-plan, générer une réponse adaptée au contexte avec un LLM, puis envoyer la réponse via l'endpoint d'API `POST /api/{account}/chats/{chat_id}/messages`. Cette architecture pilotée par événements traite le trafic entrant en quasi temps réel et laisse au LLM le temps de générer une réponse contextuelle. Notre documentation décrit le même pipeline dans le [guide du chatbot IA](https://docs.onlyfansapi.com/onlyfans-ai/build-ai-chatbot-for-onlyfans). Pour tous les événements auxquels vous pouvez vous abonner, consultez le [guide des webhooks OnlyFans](/fr/blog/webhooks-onlyfans-abonnes-pourboires-messages).

Parmi les [tarifs OnlyFansAPI](https://onlyfansapi.com/pricing), les formules à partir du plan Basic ($69/mois) fournissent l'infrastructure prête pour la production qui fait tourner ce pipeline. Le plan Basic donne accès à plus de 320 endpoints, aux webhooks et à un proxy IP mobile dédié par compte connecté, aux États-Unis ou au Royaume-Uni. OnlyFansAPI affiche 99,98 % de disponibilité, a traité plus de 300 millions de requêtes, est utilisé par plus de 1 100 entreprises et ne compte aucun bannissement de compte en plus de 5 ans.

### Comment les webhooks captent-ils les messages en quasi temps réel ?

Les webhooks envoient les données à votre serveur en quasi temps réel après une action d'un fan. Ouvrez le tableau de bord des webhooks et abonnez votre endpoint HTTPS à l'événement `messages.received`. Cet événement contient le texte du message du fan et son identifiant. Le client webhook calcule une signature avec l'algorithme HMAC SHA256, en utilisant votre secret de signature comme clé. Votre endpoint doit vérifier cette signature et renvoyer un statut 200 OK dans le délai d'expiration de requête de 10 secondes. Placez le payload dans une file d'attente en arrière-plan avant de générer la réponse IA.

### Regrouper les rafales de messages des fans (anti-rebond)

Les fans envoient souvent plusieurs messages courts d'affilée. Répondre instantanément au premier message peut interrompre le fil de leur pensée. Pour éviter cela, abonnez-vous au webhook `users.typing`. Quand un événement `messages.received` arrive, programmez la tâche IA en arrière-plan pour qu'elle attende 5 à 10 secondes. Si un autre événement `users.typing` se déclenche pour ce chat, réinitialisez le minuteur. Cette période anti-rebond regroupe les courtes rafales de texte en un seul prompt pour votre LLM.

### Simuler l'indicateur de saisie

Dès que le LLM commence à générer une réponse, signalez au fan qu'une réponse arrive. Appelez l'[endpoint Start Typing Indicator](https://docs.onlyfansapi.com/api-reference/chats/start-typing-indicator) via `POST https://app.onlyfansapi.com/api/{account}/chats/{chat_id}/typing`. Le fan voit une mention « Model is typing... » pendant environ 4 secondes ; appelez de nouveau l'endpoint si votre LLM travaille encore.

### Envoyer le message de chat IA

Quand le LLM a fini de rédiger la réponse, renvoyez-la au fan. Envoyez une requête à l'[endpoint Send Message](https://docs.onlyfansapi.com/api-reference/chat-messages/send-message) sur `POST https://app.onlyfansapi.com/api/{account}/chats/{chat_id}/messages`. Placez votre clé API dans l'en-tête `Authorization: Bearer YOUR_API_KEY` et utilisez votre ID de compte, qui commence par `acct_`.

Si le message contient du contenu payant, fixez le `price` entre 3 et 200. Un prix non nul exige des `mediaFiles` pour verrouiller le média derrière un paywall, sauf si `lockedText` vaut true.

### Automatiser les relances après achat

Quand un fan achète le contenu payant, l'événement webhook `messages.ppv.unlocked` se déclenche. Extrayez le montant de l'achat et l'ID de l'utilisateur du payload, puis demandez au LLM d'envoyer un message de remerciement naturel. Cette boucle maintient l'engagement des fans après un achat.

## Implémentation Node.js du webhook et de l'envoi de messages

Ce code TypeScript montre comment vérifier les signatures de webhook, déclencher un indicateur de saisie et envoyer une réponse texte générée par l'IA. Les webhooks nécessitent le plan Basic ou supérieur. Le code lit l'ID de compte `acct_` dans le champ `account_id` de chaque événement.

```typescript
import express, { Request, Response } from 'express';
import crypto from 'crypto';

const app = express();
app.use(express.json({ verify: (req: any, _res, buf) => { req.rawBody = buf; } }));

const OFAPI_KEY = process.env.ONLYFANS_API_KEY!;
const SIGNING_SECRET = process.env.OFAPI_WEBHOOK_SECRET!;
const API_BASE = 'https://app.onlyfansapi.com/api';

app.post('/api/webhooks/onlyfans', async (req: Request, res: Response) => {
  const signature = req.headers['signature'] as string;
  if (!signature) {
    return res.status(401).send('Invalid signature');
  }

  const hmac = crypto.createHmac('sha256', SIGNING_SECRET);
  const digest = hmac.update((req as any).rawBody).digest('hex');
  if (signature.length !== digest.length || !crypto.timingSafeEqual(Buffer.from(signature), Buffer.from(digest))) {
    return res.status(401).send('Invalid signature');
  }

  const { event, account_id, payload } = req.body;

  // Renvoyer 200 OK immédiatement pour éviter les expirations
  res.status(200).json({ received: true });

  if (event === 'messages.received') {
    const { fromUser, text, id: messageId } = payload;

    try {
      // Démarrer l'indicateur de saisie
      await fetch(`${API_BASE}/${account_id}/chats/${fromUser.id}/typing`, {
        method: 'POST',
        headers: {
          'Authorization': `Bearer ${OFAPI_KEY}`,
          'Content-Type': 'application/json',
        },
      });

      // Simuler le temps de génération du LLM
      await new Promise((resolve) => setTimeout(resolve, 3000));

      const aiReply = `Hey ${fromUser.name}, thanks for the message!`;

      // Envoyer la réponse
      await fetch(`${API_BASE}/${account_id}/chats/${fromUser.id}/messages`, {
        method: 'POST',
        headers: {
          'Authorization': `Bearer ${OFAPI_KEY}`,
          'Content-Type': 'application/json',
          'Idempotency-Key': `reply_${messageId}`,
        },
        body: JSON.stringify({ text: aiReply }),
      });
    } catch (error) {
      console.error('Error sending reply:', error);
    }
  }
});

app.listen(3000, () => console.log('Webhook server running'));
```

## Quels garde-fous encadrent les systèmes de chat automatisés ?

Les systèmes de chat automatisés exigent des garde-fous techniques pour éviter les messages en double et gérer les relations à forte valeur. Incluez toujours un en-tête `Idempotency-Key` dans chaque requête `POST` d'envoi de message. Cet en-tête évite les envois en double si une expiration réseau vous oblige à relancer la même requête.

Pour les fans VIP aux dépenses cumulées élevées, les agences dirigent les messages vers une file de relecture humaine au lieu d'envoyer directement la sortie du LLM. Vous pouvez lire les dépenses cumulées du fan dans le payload du webhook (`fanData.spending.total`) ou via l'endpoint List Chats (`GET /api/{account}/chats`, `subscribedOnData.totalSumm`) pour décider quand arrêter les réponses automatiques et prévenir un chatteur humain.

## Alternatives d'automatisation pour les agences

Les agences qui veulent des opérations IA sans écrire de code API sur mesure peuvent déployer [FansBot](https://onlyfansapi.com/fansbot) directement dans Telegram, Slack ou Discord. FansBot est un employé IA pour les agences OnlyFans. Il ne se fait pas passer pour les créateurs, n'automatise pas les conversations avec les fans et n'envoie pas de messages aux fans. Il prend en charge les tâches de back-office comme les récapitulatifs quotidiens des revenus, les audits qualité des shifts de chatteurs et la préparation de la répartition des paies. FansBot se connecte à plus de 3 000 applications dès l'installation et offre $69 de crédits gratuits pour démarrer.

Pour une comparaison des types de bots OnlyFans, des chatbots en contact avec les fans aux collègues IA comme FansBot, consultez notre guide sur les [outils de bot IA pour OnlyFans](/fr/blog/bots-outils-ia-onlyfans).