Helpaj paghoj, ekzemploj kaj teknikaj detaloj en pli klara aranĝo.
Kompleta dokumentaro de ĉiuj finpunktoj de la Militant API. Vi povas ankaŭ vidi la dinamikan JSON-liston de finpunktoj ĉe /api/v1/index.php.
La API distingas inter malsamaj roloj, precipe por moderigo kaj rektaj elsendoj:
is_admin = 1. Havas aliron al la panelo admin/ kaj teknikistaj iloj.LIVEKIT_TECHNICIAN_USER_IDS aŭ is_admin = 1.| Endpoint | Metodo | Priskribo |
|----------|--------|-----------|
| /api/v1/auth.php | POST | Ensaluti kaj ricevi ĵetonon |
| /api/v1/auth.php?action=register | POST | Krei konton |
| /api/v1/auth.php?action=forgot_password | POST | Peti retpoŝton por pasvorta restarigo |
| /api/v1/auth.php?action=reset_password | POST | Agordi novan pasvorton per la retpoŝte ricevita ĵetono |
| /api/v1/auth.php?action=refresh | POST | Refreŝigi ĵetonon |
| /api/v1/auth.php?action=revoke | POST | Revoki ĵetonon |
Notoj:
username aŭ email en la kampo usernametotp al la petkorpoforgot_password atendas {"email": "user@example.org"} kaj ĉiam respondas per ĝenerala mesaĝo por eviti kontonumeradonreset_password atendas {"token": "...", "password": "nova_pasvorto"}; la pasvorto devas havi almenaŭ 8 signojn| Endpoint | Metodo | Priskribo |
|----------|--------|-----------|
| /api/v1/users.php | GET | Akiri propran profilon |
| /api/v1/users.php?id={id} | GET | Akiri profilon laŭ identigilo |
| /api/v1/users.php | PUT | Ĝisdatigi propran profilon |
| /api/v1/settings.php | GET | Akiri publikajn API-agordojn (OneSignal, WebRTC STUN/TURN) |
| /api/v1/change_password.php | POST | Ŝanĝi pasvorton |
| /api/v1/user_preferences.php | GET | Akiri viajn preferojn |
| /api/v1/user_preferences.php | PUT | Ĝisdatigi viajn preferojn |
| /api/v1/delete_account.php | POST | Peti forigon de konto kun retpoŝta konfirmo |
| Endpoint | Metodo | Priskribo |
|----------|--------|-----------|
| /api/v1/posts.php | GET | Akiri la novaĵfluon (sekvataj kontoj defaŭlte) |
| /api/v1/posts.php?feed_type=global | GET | Akiri la publikan tutmondan fluon |
| /api/v1/posts.php?user_id={id} | GET | Muro de uzanto (afiŝoj + kundividoj) |
| /api/v1/posts.php?id={id} | GET | Detaloj de afiŝo |
| /api/v1/posts.php | POST | Krei afiŝon |
| /api/v1/posts.php?id={id} | PUT | Redakti afiŝon |
| /api/v1/posts.php?id={id} | DELETE | Forigi afiŝon |
| Endpoint | Metodo | Priskribo |
|----------|--------|-----------|
| /api/v1/comments.php?post_id={id} | GET | Akiri komentojn de afiŝo |
| /api/v1/comments.php | POST | Krei komenton aŭ respondon (parent_id nedeviga) |
| /api/v1/comments.php?id={id} | PUT | Redakti komenton |
| /api/v1/comments.php?id={id} | DELETE | Forigi komenton |
| Endpoint | Metodo | Priskribo |
|----------|--------|-----------|
| /api/v1/group_comments.php?post_id={id} | GET | Akiri grupajn komentojn |
| /api/v1/group_comments.php | POST | Krei grupan komenton aŭ respondon (parent_id nedeviga) |
| /api/v1/group_comments.php | PUT | Redakti grupan komenton (korpo id) |
| /api/v1/group_comments.php?id={id} | DELETE | Forigi grupan komenton |
| Endpoint | Metodo | Priskribo |
|----------|--------|-----------|
| /api/v1/comment_reactions.php?comment_id={id}&comment_type={type} | GET | Akiri reagojn de komento |
| /api/v1/comment_reactions.php | POST | Aldoni reagon al komento |
| /api/v1/comment_reactions.php?comment_id={id}&comment_type={type} | DELETE | Forigi reagon |
Komenttipoj: post, group, page
Reagotipoj: like, love, haha, wow, sad, angry
| Endpoint | Metodo | Priskribo |
|----------|--------|-----------|
| /api/v1/reactions.php?post_id={id} | GET | Akiri reagojn |
| /api/v1/reactions.php | POST | Aldoni reagon |
| /api/v1/reactions.php?post_id={id} | DELETE | Forigi reagon |
Tipoj: like, love, haha, wow, sad, angry
| Endpoint | Metodo | Priskribo |
|----------|--------|-----------|
| /api/v1/group_reactions.php | POST | Aldoni reagon al grupa afiŝo |
| /api/v1/group_reactions.php?post_id={id} | DELETE | Forigi reagon |
| Endpoint | Metodo | Priskribo |
|----------|--------|-----------|
| /api/v1/follows.php?user_id={id}&type=followers | GET | Akiri sekvantojn |
| /api/v1/follows.php?user_id={id}&type=following | GET | Akiri sekvatojn |
| /api/v1/follows.php | POST | Sekvi uzanton |
| /api/v1/follows.php?user_id={id} | DELETE | Ĉesi sekvi |
| Endpoint | Metodo | Priskribo |
|----------|--------|-----------|
| /api/v1/friends.php | GET | Kombinita listo de amikoj kaj ricevitaj petoj |
| /api/v1/friends.php?type=friends | GET | Listo de amikoj |
| /api/v1/friends.php?type=pending | GET | Atendantaj ricevitaj petoj |
| /api/v1/friends.php | POST | Sendi peton (action=send) |
| /api/v1/friends.php | POST | Akcepti peton (action=accept) |
| /api/v1/friends.php | POST | Malakcepti peton (action=reject) |
| /api/v1/friends.php?user_id={id} | DELETE | Forigi amikon |
| Endpoint | Metodo | Priskribo |
|----------|--------|-----------|
| /api/v1/messages.php | GET | Akiri konversaciojn |
| /api/v1/messages.php?user_id={id} | GET | Mesaĝoj kun uzanto |
| /api/v1/messages.php | POST | Sendi mesaĝon (parent_id nedeviga) |
| /api/v1/messages.php?action=react | POST | Aldoni au anstatauigi reagon al privata mesagxo |
| /api/v1/messages.php?id={id} | PUT | Redakti mesaĝon |
| /api/v1/messages.php?id={id} | DELETE | Forigi mesaĝon |
| /api/v1/messages.php?action=react&message_id={id} | DELETE | Forigi vian reagon de privata mesagxo |
| /api/v1/messages.php?user_id={id} | DELETE | Forigi tutan konversacion |
Pliaj kampoj resenditaj en mesagxlistoj:
parent_idparent_contentparent_sender_usernamereactions_summaryuser_reaction| Endpoint | Metodo | Priskribo |
|----------|--------|-----------|
| /api/v1/message_groups.php | GET | Akiri grupojn |
| /api/v1/message_groups.php?path={id} | GET | Detaloj de grupo |
| /api/v1/message_groups.php?path={id}/messages | GET | Grupaj mesaĝoj |
| /api/v1/message_groups.php | POST | Krei grupon |
| /api/v1/message_groups.php?path={id}/messages | POST | Sendi mesaĝon (parent_id nedeviga) |
| /api/v1/message_groups.php?path={id}/members | POST | Aldoni membron |
| /api/v1/message_groups.php?path={id}/requests/{request_id}/approve | POST | Aprobi alirpeton |
| /api/v1/message_groups.php?path={id}/requests/{request_id}/reject | POST | Malakcepti alirpeton |
| /api/v1/message_groups.php?path=messages/{id}/reactions | POST | Aldoni au anstatauigi reagon al grupa mesagxo |
| /api/v1/message_groups.php?path=messages/{id} | PUT | Redakti grupan mesaĝon |
| /api/v1/message_groups.php?path={id} | PUT | Ĝisdatigi mesaĝgrupon |
| /api/v1/message_groups.php?path=messages/{id} | DELETE | Forigi grupan mesaĝon |
| /api/v1/message_groups.php?path=messages/{id}/reactions | DELETE | Forigi vian reagon de grupa mesagxo |
| /api/v1/message_groups.php?path={id}/members/{user_id} | DELETE | Forigi membron |
| /api/v1/message_groups.php?path={id} | DELETE | Forlasi la grupon |
Pliaj kampoj resenditaj en grupaj mesagxoj:
parent_idparent_contentparent_usernamereactions_summaryuser_reaction| Endpoint | Metodo | Priskribo |
|----------|--------|-----------|
| /api/v1/notifications.php | GET | Akiri sciigojn |
| /api/v1/notifications.php?unread=true | GET | Akiri nur nelegitajn sciigojn |
| /api/v1/notifications.php?id={id} | PUT | Marki kiel legitan |
| /api/v1/notifications.php | PUT | Marki ĉiujn kiel legitaj (mark_all=true en la JSON-korpo) |
| /api/v1/notifications.php?action=test | POST | Sendi testan sciigon |
| Endpoint | Metodo | Priskribo |
|----------|--------|-----------|
| /api/v1/search.php?q={query} | GET | Serĉi ĉion |
| /api/v1/search.php?q={query}&type=users | GET | Serĉi uzantojn |
| /api/v1/search.php?q={query}&type=posts | GET | Serĉi afiŝojn |
| Endpoint | Metodo | Priskribo |
|----------|--------|-----------|
| /api/v1/discover.php | GET | Sugestoj (uzantoj, grupoj, paĝoj) |
| /api/v1/discover.php?type=users | GET | Sugestoj de uzantoj |
| /api/v1/discover.php?type=groups | GET | Sugestoj de grupoj |
| /api/v1/discover.php?type=pages | GET | Sugestoj de paĝoj |
| Endpoint | Metodo | Priskribo |
|----------|--------|-----------|
| /api/v1/feature_suggestions.php | GET | Listo de sugestoj |
| /api/v1/feature_suggestions.php?filter=popular | GET | Sugestoj ordigitaj lau poentaro |
| /api/v1/feature_suggestions.php?filter=recent | GET | Lastatempaj sugestoj |
| /api/v1/feature_suggestions.php?filter=planned | GET | Planitaj au prilaborataj sugestoj |
| /api/v1/feature_suggestions.php?filter=done | GET | Finitaj sugestoj |
| /api/v1/feature_suggestions.php?id={id} | GET | Detaloj de sugesto kun komentoj |
| /api/v1/feature_suggestions.php?action=stats | GET | Statistikoj lau stato |
| /api/v1/feature_suggestions.php | POST | Krei sugeston |
| /api/v1/feature_suggestions.php?action=vote | POST | Voĉdoni por au kontrau |
| /api/v1/feature_suggestions.php?action=comment | POST | Komenti sugeston |
| /api/v1/feature_suggestions.php?action=update_status | POST | Gxisdatigi staton kaj administran respondon |
| /api/v1/feature_suggestions.php?id={id} | DELETE | Forigi sugeston |
| Endpoint | Metodo | Priskribo |
|----------|--------|-----------|
| /api/v1/likes.php | POST | Ŝati afiŝon |
| /api/v1/likes.php?post_id={id} | DELETE | Forigi vian ŝaton |
| Endpoint | Metodo | Priskribo |
|----------|--------|-----------|
| /api/v1/stories.php | GET | Akiri aktivajn rakontojn de sekvataj kontoj kaj de vi mem |
| /api/v1/stories.php?user_id={id} | GET | Akiri aktivajn rakontojn de uzanto |
| /api/v1/stories.php | POST | Krei rakonton |
| /api/v1/stories.php?id={id} | DELETE | Forigi rakonton |
| Endpoint | Metodo | Priskribo |
|----------|--------|-----------|
| /api/v1/groups.php | GET | Akiri aliĝitajn grupojn |
| /api/v1/groups.php?discover=1 | GET | Malkovri publikajn grupojn |
| /api/v1/groups.php?id={id} | GET | Detaloj de grupo |
| /api/v1/groups.php?id={id}&members=1 | GET | Membroj de grupo |
| /api/v1/groups.php | POST | Krei grupon |
| /api/v1/groups.php | POST | Aliĝi al grupo (action=join) |
| /api/v1/groups.php | POST | Inviti uzanton (action=invite) |
| /api/v1/groups.php | POST | Aprobi/Malakcepti peton (action=approve_request/reject_request) |
| /api/v1/groups.php | PUT | Ĝisdatigi grupon (korpo id) |
| /api/v1/groups.php?id={id} | DELETE | Forlasi grupon |
| Endpoint | Metodo | Priskribo |
|----------|--------|-----------|
| /api/v1/group_posts.php?group_id={id} | GET | Akiri afiŝojn de grupo |
| /api/v1/group_posts.php | POST | Publikigi en grupo |
| /api/v1/group_posts.php | PUT | Redakti grupan afiŝon (korpo id) |
| /api/v1/group_posts.php?id={id} | DELETE | Forigi grupan afiŝon |
| Endpoint | Metodo | Priskribo |
|----------|--------|-----------|
| /api/v1/pages.php | GET | Akiri paĝojn administratajn de la ensalutinta uzanto |
| /api/v1/pages.php?id={id} | GET | Detaloj de paĝo |
| /api/v1/pages.php?path={id}/posts | GET | Afiŝoj de paĝo |
| /api/v1/pages.php?path={id}/comments/{post_id} | GET | Komentoj de paĝa afiŝo |
| /api/v1/pages.php?path={id}/followers | GET | Sekvantoj de paĝo |
| /api/v1/pages.php?path={id}/team | GET | Teamo de paĝo |
| /api/v1/pages.php?discover=1 | GET | Malkovri paĝojn |
| /api/v1/pages.php?followed=1 | GET | Paĝoj sekvataj de la ensalutinta uzanto |
| /api/v1/pages.php | POST | Krei paĝon |
| /api/v1/pages.php | POST | Sekvi paĝon (action=follow) |
| /api/v1/pages.php | POST | Ĉesi sekvi paĝon (action=unfollow) |
| /api/v1/pages.php | POST | Publikigi sur paĝo (action=create_post) |
| /api/v1/pages.php | POST | Komenti paĝan afiŝon (action=comment) |
| /api/v1/pages.php | POST | Reagi al paĝa afiŝo (action=react) |
| /api/v1/pages.php | POST | Aldoni teamanon (action=add_team_member) |
| /api/v1/pages.php | POST | Ĝisdatigi paĝon (action=update_page) |
| /api/v1/pages.php | PUT | Redakti paĝan afiŝon (action=update_post) |
| /api/v1/pages.php | PUT | Redakti paĝan komenton (action=update_comment) |
| /api/v1/pages.php | DELETE | Ĉesi sekvi paĝon (action=unfollow aŭ page_id) |
| /api/v1/pages.php | DELETE | Forigi paĝan afiŝon (action=delete_post) |
| /api/v1/pages.php | DELETE | Forigi teamanon (action=remove_team_member) |
| /api/v1/pages.php | DELETE | Forigi sekvanton (action=remove_follower) |
| /api/v1/pages.php | DELETE | Forigi paĝan komenton (action=delete_comment) |
Publikigi sur paĝo (POST /api/v1/pages.php)
{
"action": "create_post",
"page_id": 12,
"content": "Saluton de la API",
"media": null,
"media_type": null
}
Minimumaj parametroj:
action: create_postpage_id: identigilo de la paĝocontent: teksto de la publikigo, nedeviga se media estas donitamedia: vojo aŭ nomo de jam alŝutita dosiero, nedevigamedia_type: tipo de la aŭdvidaĵo (image, video, ktp.), nedevigaPermesoj:
page_admins por la celita paĝo| Endpoint | Metodo | Priskribo |
|----------|--------|-----------|
| /api/v1/bookmarks.php | GET | Akiri legosignojn |
| /api/v1/bookmarks.php | POST | Aldoni al legosignoj |
| /api/v1/bookmarks.php?post_id={id} | DELETE | Forigi el legosignoj |
| Endpoint | Metodo | Priskribo |
|----------|--------|-----------|
| /api/v1/shares.php | POST | Kundividi afiŝon (post_id bezonata) |
| Endpoint | Metodo | Priskribo |
|----------|--------|-----------|
| /api/v1/events.php | GET | Akiri venontajn eventojn |
| /api/v1/events.php?id={id} | GET | Detaloj de evento |
| /api/v1/events.php | POST | Krei eventon |
| /api/v1/events.php | POST | Aliĝi al evento (action=join) |
| /api/v1/events.php?id={id} | DELETE | Forlasi eventon |
| /api/v1/events.php?id={id}&action=delete | DELETE | Forigi eventon (nur aŭtoro) |
| Endpoint | Metodo | Priskribo |
|----------|--------|-----------|
| /api/v1/albums.php | GET | Akiri viajn albumojn |
| /api/v1/albums.php?user_id={id} | GET | Akiri albumojn de uzanto |
| /api/v1/albums.php?id={id} | GET | Detaloj de albumo kun fotoj |
| /api/v1/albums.php | POST | Krei albumon |
| /api/v1/albums.php | POST | Aldoni foton (action=add_photo) |
| /api/v1/albums.php?id={id} | DELETE | Forigi albumon |
| Endpoint | Metodo | Priskribo |
|----------|--------|-----------|
| /api/v1/lives.php | GET | Akiri aktivajn rektajn elsendojn |
| /api/v1/lives.php?path={id} | GET | Detaloj de rekta elsendo |
| /api/v1/lives.php?path={id}/comments | GET | Komentoj de la elsendo |
| /api/v1/lives.php?path={id}/guests | GET | Gastoj de la elsendo |
| /api/v1/lives.php | POST | Komenci rektan elsendon |
| /api/v1/lives.php?path=token | POST | Generi LiveKit-tokenon (necesas aŭtentigo) |
| /api/v1/lives.php?path={id}/comments | POST | Komenti |
| /api/v1/lives.php?path={id}/join | POST | Aliĝi kiel spektanto |
| /api/v1/lives.php?path={id}/request-guest | POST | Peti esti gasto |
| /api/v1/lives.php?path={id}/report | POST | Raporti rektan elsendon |
| /api/v1/lives.php?path={id}/background | PUT | Gxisdatigi la persistigitan fonbildon de la elsendo |
| /api/v1/lives.php?path={id}/end | POST | Fini rektan elsendon (action=end en la korpo) |
| /api/v1/lives.php?path={id}/end | PUT | Fini rektan elsendon (malrekomendita) |
path=token)POST /api/v1/lives.php?path=token kun kaplinio Authorization: Bearer {token} kaj JSON-korpo:
roomName (stringo, deviga): nomo de la LiveKit-ĉambroidentity (stringo, deviga): unika partoprenanto-idname (stringo, deviga): montra nomocanPublish (bool): true por elsendi, false por spektantoJSON-respondo: token (LiveKit-JWT), url (servilo wss://), expires_in (sekundoj).
Agordo: variabloj LIVEKIT_URL, LIVEKIT_API_KEY, LIVEKIT_API_SECRET, aŭ dosiero config/livekit.local.php (ne en git). Reta interfaco: /admin/livekit.php post ensaluto ĉe /admin/login.php — nur teknikistoj (same kiel la retejo: users.is_admin = 1, administrataj en admin.php?tab=technicians; rezervo is_technician aŭ LIVEKIT_TECHNICIAN_USER_IDS).
TURN/WebRTC-agordo: variabloj WEBRTC_TURN_URLS, WEBRTC_TURN_AUTH_SECRET, WEBRTC_TURN_TTL, WEBRTC_TURN_REALM, aŭ dosiero config/turn.local.php (ne en git). Reta interfaco: /admin/turn.php. GET /api/v1/settings.php redonas stun_servers, turn_servers kaj webrtc_ice_servers; se WEBRTC_TURN_AUTH_SECRET estas agordita, TURN-kredencialoj estas provizoraj (HMAC, kongruaj kun coturn use-auth-secret).
path={id}/background)PUT /api/v1/lives.php?path={id}/background kun kaplinio Authorization: Bearer {token} kaj JSON-korpo:
background_image (cxeno au null): vojo/URL de la fonbildo ligota al la rekta elsendoKonduto:
null forigas la persistigitan fonbildonsuccess kaj background_imageGET /api/v1/lives.php?path={id} povas redoni background_image por malfrue alvenantaj spektantoj| Endpoint | Metodo | Priskribo |
|----------|--------|-----------|
| /api/v1/reports.php | GET | Akiri raportojn (status=pending defaŭlte) |
| /api/v1/reports.php?status=resolved | GET | Akiri solvitajn raportojn |
| /api/v1/reports.php | POST | Krei raporton |
| /api/v1/reports.php | POST | Voĉdoni pri raporto (report_id, vote) |
| /api/v1/reports.php | POST | Apliki rektan moderan agon (moderator_action) |
| Endpoint | Metodo | Priskribo |
|----------|--------|-----------|
| /api/v1/moderators.php | GET | Akiri moderatorojn, kandidatojn kaj agojn |
| /api/v1/moderators.php?type=candidates | GET | Akiri nur kandidatojn |
| /api/v1/moderators.php?type=moderators | GET | Akiri nur moderatorojn |
| /api/v1/moderators.php?type=actions | GET | Akiri historian liston de agoj |
| /api/v1/moderators.php | POST | Kandidatiĝi |
| /api/v1/moderators.php | POST | Voĉdoni por aŭ kontraŭ kandidato (candidate_id, vote) |
| /api/v1/moderators.php | DELETE | Retiri vian kandidatecon |
| Endpoint | Metodo | Priskribo |
|----------|--------|-----------|
| /api/v1/sanctions.php | GET | Akiri viajn sankciojn |
| /api/v1/sanctions.php?type=all | GET | Akiri publikajn avertojn kaj forbarojn |
| Endpoint | Metodo | Priskribo |
|----------|--------|-----------|
| /api/v1/upload.php | POST | Alŝuti dosieron per multipart/form-data (maks. 100MB) |
Subtenataj tipoj: jpg, png, gif, webp, mp4, webm, mov, mp3, wav, m4a
Atendataj kampoj:
mediatype inter posts, stories, messages, avatar, banner, group, groups, group_post, page, pages, event, album| Endpoint | Metodo | Priskribo |
|----------|--------|-----------|
| /api/v1/export.php | GET | Eksporti ĉiujn viajn datumojn (GDPR) |
| Endpoint | Metodo | Priskribo |
|----------|--------|-----------|
| /api/v1/two_factor.php | GET | 2FA-stato kaj agorda sekreto se 2FA ankoraŭ ne estas aktiva |
| /api/v1/two_factor.php?action=enable | POST | Aktivigi 2FA-on (TOTP) |
| /api/v1/two_factor.php | DELETE | Malaktivigi 2FA-on |
| Endpoint | Metodo | Priskribo |
|----------|--------|-----------|
| /api/v1/user_preferences.php | PUT | Administri preferojn pri puŝaj sciigoj kaj privateco |
Vidu la kompletan Push-gvidilon
| Endpoint | Metodo | Priskribo |
|----------|--------|-----------|
| /api/v1/translate.php | POST | Traduki tekston (LibreTranslate) |
Parametroj (POST):
text: tradukota teksto (maks. 5000 signoj)target_lang: cela lingvo (ekzemple fr, en)Vidu la kompletan Tradukan gvidilon
Ĉiuj petoj estas limigitaj laŭ finpunkto:
| Endpoint | Limo | |----------|------| | Auth | 50 req/h | | Posts | 100 req/h | | Comments | 150 req/h | | Comment Reactions | 200 req/h | | Messages | 200 req/h | | Likes/Reactions | 200 req/h | | Group Reactions | 200 req/h | | Upload | 50 req/h | | Export | 5 req/h | | Aliaj | 100 req/h |
Atentu: Ekskluzive por la Flutter-poŝtelefona aplikaĵo - Bezonas la kaplinion X-Flutter-App: militant-flutter-v1
| Endpoint | Metodo | Priskribo |
|----------|--------|-----------|
| /api/v1/calls.php?action=initiate_talk | POST | Inviti grupon al Nextcloud Talk-salono |
| /api/v1/calls.php?action=initiate | POST | Komenci 1-al-1 aŭ grupan alvokon |
| /api/v1/calls.php?action=answer | POST | Respondi al alvoko |
| /api/v1/calls.php?action=join | POST | Aliĝi al grupa alvoko |
| /api/v1/calls.php?action=peer_offer | POST | Sendi WebRTC-oferton (grupo) |
| /api/v1/calls.php?action=peer_answer | POST | Sendi WebRTC-respondon (grupo) |
| /api/v1/calls.php?action=ice_candidate | POST | Interŝanĝi ICE-kandidatojn |
| /api/v1/calls.php?action=ice_restart | POST | Restartigi ICE-on (reta ŝanĝo) |
| /api/v1/calls.php?action=reject | POST | Malakcepti alvokon |
| /api/v1/calls.php?action=leave | POST | Forlasi grupan alvokon sen fini ĝin |
| /api/v1/calls.php?action=end | POST | Fini alvokon |
| /api/v1/calls.php?action=poll | GET | Demandpeti ĝisdatigojn |
| /api/v1/calls.php?action=history | GET | Historio de alvokoj |
Komenci privatan alvokon:
POST /api/v1/calls.php?action=initiate
Headers:
Authorization: Bearer {token}
X-Flutter-App: militant-flutter-v1
Body:
{
"recipient_id": 123,
"call_type": "audio",
"offer": "v=0\r\no=- 123456..."
}
Komenci grupan alvokon:
POST /api/v1/calls.php?action=initiate
Headers:
Authorization: Bearer {token}
X-Flutter-App: militant-flutter-v1
Body:
{
"group_id": 456,
"call_type": "video",
"offer": "v=0\r\no=- 123456..."
}
MILITANT subtenas la protokolon ActivityPub — la malferma normo por maldistribuitaj sociaj retoj (Mastodon, Pleroma, Misskey, PeerTube…).
MILITANT-uzantojn oni povas trovi de iu ajn Fediversa instanco per ilia adreso:
@username@via-domajno.com
Ĉi tio uzas la WebFinger-protokolon disponeblan je:
GET /.well-known/webfinger?resource=acct:username@via-domajno.com
Ĉiu uzanto havas JSON-LD Person-profilon alireblaj per:
GET /fediverse/actor.php?username={username}
Accept: application/activity+json
Respondo inkluzivas: identecon, biografion, avataraon, standardon, enpoŝtejon, elligejon, RSA-publikan ŝlosilon.
GET /fediverse/followers.php?username={username} → Ĉefa kolekto (tuto)
GET /fediverse/followers.php?username={username}&page=1 → Paĝo 1 de abonanoj
---
| Endpunkto | Metodo | Priskribo |
|-----------|--------|-----------|
| /api/v1/fediverse.php?action=profile | GET | Propra Fediversa profilo |
| /api/v1/fediverse.php?action=profile&user_id={id} | GET | Fediversa profilo de alia uzanto |
| /api/v1/fediverse.php?action=followers | GET | Propraj Fediversaj abonanoj (paĝiĝintaj) |
| /api/v1/fediverse.php?action=followers&user_id={id} | GET | Fediversaj abonanoj de alia uzanto |
| /api/v1/fediverse.php?action=following | GET | Listo de sekvataj foraj Fediversaj kontoj (paĝiĝinta) |
| /api/v1/fediverse.php?action=following&user_id={id} | GET | Fora sekvatlisto de alia uzanto |
| /api/v1/fediverse.php?action=feed | GET | Fluo de afiŝoj el foraj sekvataj kontoj |
| /api/v1/fediverse.php?action=feed&refresh=1 | GET | Refreŝigas la forajn outbox-ojn antaŭ ol redoni la fluon |
| /api/v1/fediverse.php?action=search_remote&q={handle} | GET | Solvas aŭ serĉas foran Fediversan konton |
| /api/v1/fediverse.php?action=remote_profile&q={handle_aŭ_actor_url} | GET | Solvas unuopan foran profilon kun lastatempaj afiŝoj |
| /api/v1/fediverse.php?action=follow_remote | POST | Sekvi foran Fediversan konton |
| /api/v1/fediverse.php?action=unfollow_remote | DELETE | Ĉesi sekvi foran Fediversan konton |
#### Respondo action=profile
{
"user_id": 42,
"username": "anar",
"actor_id": "https://domajno.com/users/anar",
"fediverse_handle": "@anar@domajno.com",
"fediverse_active": true,
"followers_count": 17,
"following_count": 9,
"is_remote": false,
"account_type": "local"
}
#### Respondo action=feed
{
"posts": [
{
"id": 12,
"remote_post_id": "https://mastodon.social/@alex/1143596789",
"original_url": "https://mastodon.social/@alex/1143596789",
"actor_url": "https://mastodon.social/users/alex",
"username": "alex",
"display_name": "Alex",
"domain": "mastodon.social",
"handle": "@alex@mastodon.social",
"avatar": "https://mastodon.social/system/accounts/avatars/...",
"content": "Saluton Fediverso
",
"media_url": null,
"media_type": null,
"published_at": "2026-04-19 10:10:00",
"created_at": "2026-04-19 10:12:00",
"profile_url": "https://mastodon.social/@alex",
"is_remote": true,
"account_type": "remote"
}
],
"meta": {
"current_page": 1,
"per_page": 20,
"total": 1,
"total_pages": 1
},
"synced_posts": 3
}
#### Respondo action=remote_profile
{
"actor_url": "https://mastodon.social/users/alex",
"username": "alex",
"display_name": "Alex",
"domain": "mastodon.social",
"handle": "@alex@mastodon.social",
"avatar": "https://mastodon.social/system/accounts/avatars/...",
"summary": "Sindikat-organizanto kaj programisto",
"profile_url": "https://mastodon.social/@alex",
"is_following": true,
"is_remote": true,
"account_type": "remote",
"recent_posts": [
{
"remote_post_id": "https://mastodon.social/@alex/1143596789",
"content": "Saluton Fediverso
",
"published_at": "2026-04-19 10:10:00"
}
]
}
Por POST /api/v1/fediverse.php?action=follow_remote kaj DELETE /api/v1/fediverse.php?action=unfollow_remote, la JSON-korpo povas enhavi unu el ĉi tiuj kampoj:
{
"handle": "@alex@mastodon.social"
}
aŭ:
{
"actor_url": "https://mastodon.social/users/alex"
}
> Noto: GET /api/v1/users.php ankaŭ redonas fediverse_actor_id, fediverse_followers_count, fediverse_following_count, fediverse_handle, is_remote, kaj account_type.
| Funkcieco | Stato | |---|---| | WebFinger-malkovro | ✅ Efektivigita | | Aktora JSON-LD-profilo | ✅ Efektivigita | | Aŭtomate generitaj RSA-ŝlosiloj | ✅ Efektivigita | | Publikaj afiŝoj (Outbox) | ✅ Efektivigita | | Enpoŝtejo (ricevado de agadoj) | ✅ Efektivigita | | Elsendaj HTTP-subskriboj | ✅ Efektivigita | | Enskribkontrolado | ✅ Efektivigita | | Subskribita Accept(Follow) | ✅ Efektivigita | | Foraj abonanoj en datumbazo | ✅ Efektivigita | | Fora sekvatlisto en datumbazo | ✅ Efektivigita | | Solvado de foraj profiloj | ✅ Efektivigita | | Fora sekvo / malsekvo per API | ✅ Efektivigita | | Sinkronigo kaj konservado de fora fluo | ✅ Efektivigita |