94 lines
1.9 KiB
Plaintext
94 lines
1.9 KiB
Plaintext
# 📘 Documentation Admin – Intégration WhatsApp Business API
|
||
|
||
## 🔐 Configuration de base
|
||
|
||
### `.env` requis
|
||
```env
|
||
WHATSAPP_TOKEN=EAA...
|
||
WHATSAPP_PHONE_NUMBER_ID=1234567890
|
||
WHATSAPP_WEBHOOK_TOKEN=secrettoken
|
||
```
|
||
|
||
### Vérification du webhook (Meta)
|
||
- URL : `https://yourdomain/api/whatsapp/webhook`
|
||
- Token de vérification : doit correspondre à `WHATSAPP_WEBHOOK_TOKEN`
|
||
|
||
---
|
||
|
||
## 📩 Envoi de message
|
||
|
||
**Route :** `POST /api/message/send`
|
||
|
||
### Exemple JSON (texte)
|
||
```json
|
||
{
|
||
"to": "33612345678",
|
||
"type": "text",
|
||
"text": {
|
||
"body": "Bonjour 👋"
|
||
}
|
||
}
|
||
```
|
||
|
||
> Supporte aussi `image`, `video`, `document`, `interactive`, etc.
|
||
|
||
---
|
||
|
||
## 📥 Réception de messages / statuts
|
||
|
||
- Le webhook `POST /api/whatsapp/webhook` :
|
||
- enregistre les messages reçus dans la table `conversations`
|
||
- décrémente les crédits `CurrentMonthCredits`
|
||
- met à jour le `status` d'un message (`delivered`, `read`, etc.)
|
||
|
||
---
|
||
|
||
## 🧾 Historique utilisateur
|
||
|
||
### Interface admin
|
||
- URL : `/admin/user/{id}/conversations`
|
||
- Permet :
|
||
- de visualiser tous les messages avec filtres
|
||
- de voir la conversation complète au clic sur une ligne (HTMX)
|
||
|
||
### API :
|
||
`GET /api/user/{id}/conversations`
|
||
|
||
---
|
||
|
||
## 💬 Modèle de conversation
|
||
|
||
```go
|
||
type Conversation struct {
|
||
UserID uint
|
||
From string
|
||
To string
|
||
MessageID string
|
||
Type string
|
||
Content string
|
||
Direction string // inbound / outbound
|
||
Status string // delivered, read, sent...
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
## 🧮 Crédit consommé par message
|
||
|
||
| Type | Crédit |
|
||
|--------------|--------|
|
||
| text | 1 |
|
||
| image/video | 2 |
|
||
| document | 2 |
|
||
| interactive | 1 |
|
||
| sticker/audio| 1 |
|
||
| reaction | 0 |
|
||
|
||
---
|
||
|
||
## ✅ À tester
|
||
- [ ] Vérifier réception via webhook
|
||
- [ ] Vérifier affichage des conversations admin
|
||
- [ ] Vérifier décompte de crédits
|
||
- [ ] Tester `GET` de validation webhook avec Meta
|