Ga naar hoofdinhoud

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

MethodeEndpointBeschrijving
GET/messagesAlle berichten ophalen
GET/messages/{id}Specifiek bericht ophalen
POST/messagesNieuw 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

ParameterTypeBeschrijving
idintegerBericht 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

VeldTypeBeschrijving
user_id_tointOntvanger gebruiker ID
subjectstringOnderwerp
messagestringBerichtinhoud

Optionele velden

VeldTypeStandaardBeschrijving
priorityint0Prioriteit (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

WaardeStatus
0Ongelezen
1Gelezen

Message Priorities

WaardePrioriteit
0Normaal
1Hoog

Folder IDs

WaardeMap
0Inbox
1Verzonden
2Prullenbak

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.