Nextcloud

Accès direct

Exploration des API de NextCloud

Les principales API de NextCloud

NextCloud dispose de deux principales API :

OCS (Open Collaboration Services)

L'API OCS (Open Collaboration Services) est une API basée sur REST et WebDAV conçue pour faciliter la connexion d'applications à une plate-forme de collaboration de contenu.

L'API couvre les fonctionnalités de gestion de fichiers de base, telles que l'accès aux fichiers, le partage, la gestion des versions et les commentaires sur les fichiers. Il couvre également la communication (chat, appels vidéo), le calendrier, les tâches et plus encore.

Actuellement, Nextcloud implémente et développe l'API OCS, mais cette dernière est également enrichie par d'autres projets et par de nombreuses applications et outils tiers.

Exemples d'applications compatibles avec l'API OCS :

  • Collabora Online
  • Joplin
  • KDE Connect
  • *NextCloud
  • Nextcloud Deck
  • Nextcloud News
  • OwnCloud
  • Rainloop
  • Roundcube

OCC (Own Cloud Console)

La commande occ de Nextcloud (Own Cloud Console) est l'interface de ligne de commande de Nextcloud.

Elle permet d'effectuer de nombreuses opérations d'administration courante, comme l'installation et la mise à niveau de l'instance Nextcloud, la gestion des utilisateurs, le cryptage, la gestion des mots de passe, les paramètres LDAP, etc...

occ est un script PHP qui se trouve dans le répertoire nextcloud (par exemple /var/www/nextcloud sur Ubuntu Linux). Vous devez l'exécuter avec l'utilisateur qui a lancé le serveur Web pour éviter tout problème de droit sur vos fichiers et répertoires Nextcloud.

Exploration des API de NextCloud

Les exemples suivants ont été testés à l'aide de l'outil Postman et partent sur le principe que l'instance Nextcloud de test est installée localement pour répondre au port 8080 http://localhost:8080.

Créer un token de connexion

La requête POST suivante retourne un lien permettant de se connecter :

http://localhost:8080/index.php/login/v2

La requête POST envoyée à l'adresse retournée précédemment retournera un token (Bearer Token) qu'il faudra passer en paramètre dans toutes les requêtes d'interrogation de NextCloud :

Nom paramètreValeur
AuthorisationBearer Token = Token crée au desssus

Par défaut, la durée de vie d'un token de session est de 20 minutes.

NB : Il est également possible de passer login et mot de passe dans une requête, mais cette solution est très peu sécurisée (elle doit donc être évitée) :

Nom paramètreValeur
AuthorisationBasic Auth = login / mot de passe

Rafraîchir son Token

Il est possible de prolonger la durée de vie d'un token de session à l'aide de la requête POST suivante :

http://localhost:8080/ocs/v2.php/apps/oauth2/api/v1/token

Accompagnée des paramètres suivants :

Nom paramètreValeur
grant_typerefresh_token
refresh_tokenToken de session à renouveler

Example de batch avec Curl :

curl -X POST \
  http://localhost:8080/ocs/v2.php/apps/oauth2/api/v1/token \
  -H 'Content-Type: application/x-www-form-urlencoded' \
  -d 'grant_type=refresh_token&refresh_token=REFRESH_TOKEN'

Mettre à jour le contenu d'un ficher

Requête POST : - Header : OCS-APIRequest = true - Body : FileId = Nouveau contenu du fichier

http://localhost:8080/ocs/v2.php/apps/dav/api/v1/direct

Visualiser un fichier

Requête GET (Ce lien est celui récupéré au dessus)

http://localhost:8080/remote.php/direct/RNG6EOU11qysgu4AN5A4Lo9TRw72dDG2wzWT5VU3ZBFiwaOMZE0jZdjYtxnV

Récupérer les informations sur un utilisateur (GET)

http://localhost:8080/ocs/v1.php/cloud/users/**Nom de l'utilisateur**

http://localhost:8080/ocs/v1.php/cloud/users

Obtenir les "capacités" (GET)

http://localhost:8080/ocs/v1.php/cloud/capabilities

Auto complet et recherche d'utilisateurs (GET)

http://localhost:8080/ocs/v2.php/core/autocomplete/get?search=JOANNE%40EMAIL.ISP&itemType=%20&itemId=%20&shareTypes[]=8&limit=2'