Files
FreshRSS/docs/fr/users/06_Fever_API.md
Elanna Grossman 60b5459cac Update Reader Link Documentation (#7362)
* docs(docs): update Reeder link to point to Reeder Classic

* docs(CREDITS): add name to credits
2025-02-24 12:35:00 +01:00

6.1 KiB
Raw Blame History

FreshRSS - API compatible Fever

Voir la page sur notre API compatible Google Reader pour une autre possibilité et des généralités sur laccès par API.

Clients compatibles GReader

De nombreux clients RSS prennent en charge lAPI Fever, mais ils semblent comprendre lAPI Fever un peu différemment. Si votre client préféré ne fonctionne pas correctement avec cette API, veuiller créer un ticket et nous y jetterons un oeil. Mais nous ne pouvons le faire que pour les clients gratuits.

Utilisation et authentification

Avant de pouvoir commencer à utiliser cette API, vous devez activer et configurer laccès à lAPI, qui est documenté ici, et réinitialisez ensuite le mot de passe API de lutilisateur.

Connectez ensuite votre application mobile en utilisant ladresse de lAPI (ex. https://freshrss.example.net/api/fever.php).

Clients compatibles Fever

App Platform License
Fluent Reader Windows, Linux, macOS BSD-3-Clause
Fluent Reader lite Android, iOS BSD-3-Clause
Read You Android GPLv3
Fiery Feeds iOS Source fermée
Unread iOS Source fermée
Reeder Classic iOS Source fermée
ReadKit macOS Source fermée

Voir une meilleure liste des applications mobiles compatibles.

Fonctionnalités

Les fonctionnalités suivantes sont implémentées :

  • récupération des catégories
  • récupération des flux
  • récupération des entrées (new, favorites, unread, by_id, by_feed, by_category,since)
  • récupération des favicons
  • marquage des entrées comme lues
  • marquage des entrées comme favoris
  • marquage dun flux comme lu
  • marquage dune catégorie comme lue
  • support des extensions grace au hook entry_before_display

Les fonctionnalités suivantes ne sont pas implémentées :

  • « Hot Links » car il ny a encore rien dans FreshRSS qui soit similaire ou qui puisse être utilisé pour le simuler.

Tester et déboguer

Si lAPI ne fonctionne pas comme attendu dans votre lecteur, il est possible de la tester manuellement avec un outil tel que Postman.

Envoyer une requête POST à ladresse https://freshrss.example.net/api/fever.php?api devrait vous renvoyer le résultat suivant :

{
	"api_version": 3,
	"auth": 0
}

Super, la configuration de base fonctionne !

Maintenant essayons de faire un appel authentifié. Fever utilise un paramètre api_key qui contient le résultat de la fonction de hachage MD5 de la valeur "$username:$apiPassword". En considérant que lutilisateur est kevin et que son mot de passe est freshrss, voici la commande à lancer pour calculer la valeur du paramètre api_key :

api_key=`echo -n "kevin:freshrss" | md5sum | cut -d' ' -f1`

Ajoutez un contenu sous forme de form-dataà votre requête POST ainsi que le paramètre api_key contenant la valeur calculée à létape précédente :

curl -s -F "api_key=$api_key" 'https://freshrss.exemple.net/api/fever.php?api'

Vous devriez obtenir le résultat suivant :

{
	"api_version": 3,
	"auth": 1,
	"last_refreshed_on_time": "1520013061"
}

Parfait, maintenant vous êtes autentifié et vous pouvez commencer à tester les fonctions avancées. Pour cela, il suffit de changer ladresse en lui ajoutant les paramètres nécessaires à la réalisation des actions supportées. Pour plus dinformation, veuillez vous référer à la documentation officielle de Fever.

Voici quelques exemples simples dappels réalisables :

Remplacez some_id par un identifiant réel de votre base de données freshrss_username_entry.

Déboguer

Si rien ne fonctionne correctement et que votre client se comporte étrangement, vous pouvez ajouter les quelques lignes suivantes au début du fichier fever.api pour déterminer la cause des problèmes rencontrés :

file_put_contents(__DIR__ . '/fever.log', $_SERVER['HTTP_USER_AGENT'] . ': ' . json_encode($_REQUEST) . PHP_EOL, FILE_APPEND);

Utilisez ensuite votre client RSS pour interroger lAPI et vérifier le fichier fever.log.

Remerciements

Ce plugin a été inspiré par le tinytinyrss-fever-plugin.