Private Messages API
De Private Messages API biedt endpoints voor het beheren van privéberichten tussen gebruikers in Joomla.
Base URL
/api/index.php/v1/messages
Endpoints Overzicht
| Methode | Endpoint | Beschrijving |
|---|---|---|
| GET | /messages | Alle berichten ophalen |
| GET | /messages/{id} | Specifiek bericht ophalen |
| POST | /messages | Nieuw bericht verzenden |
| PATCH | /messages/{id} | Bericht bijwerken |
| DELETE | /messages/{id} | Bericht verwijderen |
Alle berichten ophalen
GET /api/index.php/v1/messages
Response
{
"data": [
{
"type": "messages",
"id": "1",
"attributes": {
"user_id_from": 42,
"user_id_to": 43,
"subject": "Welkom bij het team",
"message": "Hallo en welkom!",
"state": 0,
"date_time": "2024-01-15 10:30:00",
"priority": 0,
"folder_id": 0
}
}
]
}
Specifiek bericht ophalen
GET /api/index.php/v1/messages/{id}
Parameters
| Parameter | Type | Beschrijving |
|---|---|---|
| id | integer | Bericht ID |
Voorbeeld
curl -X GET "https://jouwesite.nl/api/index.php/v1/messages/1" \
-H "X-Joomla-Token: JOUW_API_TOKEN"
Bericht verzenden
POST /api/index.php/v1/messages
Request Body
{
"user_id_to": 43,
"subject": "Onderwerp van het bericht",
"message": "Dit is de inhoud van het privébericht."
}
Verplichte velden
| Veld | Type | Beschrijving |
|---|---|---|
| user_id_to | int | Ontvanger gebruiker ID |
| subject | string | Onderwerp |
| message | string | Berichtinhoud |
Optionele velden
| Veld | Type | Standaard | Beschrijving |
|---|---|---|---|
| priority | int | 0 | Prioriteit (0=normaal, 1=hoog) |
Voorbeeld
curl -X POST "https://jouwesite.nl/api/index.php/v1/messages" \
-H "X-Joomla-Token: JOUW_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"user_id_to": 43,
"subject": "Belangrijke update",
"message": "Er is een nieuwe versie beschikbaar."
}'
Bericht bijwerken
PATCH /api/index.php/v1/messages/{id}
Request Body
{
"state": 1
}
Voorbeeld: Markeer als gelezen
curl -X PATCH "https://jouwesite.nl/api/index.php/v1/messages/1" \
-H "X-Joomla-Token: JOUW_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"state": 1
}'
Bericht verwijderen
DELETE /api/index.php/v1/messages/{id}
Voorbeeld
curl -X DELETE "https://jouwesite.nl/api/index.php/v1/messages/1" \
-H "X-Joomla-Token: JOUW_API_TOKEN"
Let op
Verwijderde berichten kunnen niet worden hersteld.
Message States
| Waarde | Status |
|---|---|
| 0 | Ongelezen |
| 1 | Gelezen |
Message Priorities
| Waarde | Prioriteit |
|---|---|
| 0 | Normaal |
| 1 | Hoog |
Folder IDs
| Waarde | Map |
|---|---|
| 0 | Inbox |
| 1 | Verzonden |
| 2 | Prullenbak |
Filtering
Op status (gelezen/ongelezen)
GET /api/index.php/v1/messages?filter[state]=0
Op afzender
GET /api/index.php/v1/messages?filter[user_id_from]=42
Op map
GET /api/index.php/v1/messages?filter[folder_id]=0
Ongelezen berichten tellen
Om het aantal ongelezen berichten te krijgen:
curl -X GET "https://jouwesite.nl/api/index.php/v1/messages?filter[state]=0" \
-H "X-Joomla-Token: JOUW_API_TOKEN"
Tel het aantal items in de response.
Voorbeeld: Bulk berichten verzenden
#!/bin/bash
# Verzend bericht naar meerdere gebruikers
users=(43 44 45 46)
subject="Nieuwsbrief"
message="Bekijk onze laatste updates!"
for user_id in "${users[@]}"; do
curl -X POST "https://jouwesite.nl/api/index.php/v1/messages" \
-H "X-Joomla-Token: JOUW_API_TOKEN" \
-H "Content-Type: application/json" \
-d "{
\"user_id_to\": $user_id,
\"subject\": \"$subject\",
\"message\": \"$message\"
}"
done
Beperkingen
- Berichten zijn alleen beschikbaar voor backend (administrator) gebruikers
- De API token moet van een gebruiker zijn met toegang tot de Messages component
- Berichten worden niet automatisch per e-mail verzonden (dit is een Joomla configuratie)
info
Private Messages in Joomla zijn bedoeld voor communicatie tussen administrators. Voor frontend gebruikersberichten heb je een aparte extensie nodig.