Automatisation Wallabag avec n8n : publication d'articles facilement
Ce workflow n8n a pour objectif d'automatiser la publication d'articles sur Wallabag, facilitant ainsi la gestion de contenu pour les utilisateurs. Dans un contexte où la gestion de l'information est cruciale, ce type d'automatisation est particulièrement utile pour les rédacteurs, les journalistes ou toute personne souhaitant centraliser ses lectures. Grâce à ce workflow, vous pouvez facilement envoyer des articles à Wallabag sans intervention manuelle, ce qui vous permet de gagner un temps précieux et d'optimiser votre flux de travail.
- Étape 1 : Le déclencheur est un événement manuel, permettant à l'utilisateur de lancer le processus à tout moment.
- Étape 2 : Une requête HTTP est effectuée pour authentifier l'accès à Wallabag, garantissant que seules les personnes autorisées peuvent publier des articles.
- Étape 3 : Un cron est configuré pour exécuter le workflow à des intervalles réguliers, assurant une mise à jour constante des articles.
- Étape 4 : Une fonction personnalisée peut être ajoutée pour traiter les données avant leur envoi.
- Étape 5 : Des conditions peuvent être définies pour s'assurer que seuls les articles pertinents sont publiés. Enfin, ce workflow offre une valeur ajoutée significative en réduisant le temps de gestion des contenus et en minimisant les erreurs humaines, tout en permettant une intégration fluide avec Wallabag.
Workflow n8n Wallabag, publication d'articles, gestion de contenu : vue d'ensemble
Schéma des nœuds et connexions de ce workflow n8n, généré à partir du JSON n8n.
Workflow n8n Wallabag, publication d'articles, gestion de contenu : détail des nœuds
Inscris-toi pour voir l'intégralité du workflow
Inscription gratuite
S'inscrire gratuitementBesoin d'aide ?{
"id": "4",
"name": "post to wallabag",
"nodes": [
{
"name": "On clicking 'execute'",
"type": "n8n-nodes-base.manualTrigger",
"position": [
120,
250
],
"parameters": {},
"typeVersion": 1
},
{
"name": "HTTP Request",
"type": "n8n-nodes-base.httpRequest",
"position": [
1280,
380
],
"parameters": {
"url": "=http://{HERE-YOUR-WALLABAG-HOST}/api/entries.json",
"options": {},
"requestMethod": "POST",
"bodyParametersUi": {
"parameter": [
{
"name": "url",
"value": "={{$json[\"url\"]}}"
}
]
},
"queryParametersUi": {
"parameter": []
},
"headerParametersUi": {
"parameter": [
{
"name": "Authorization",
"value": "=Bearer {{$json[\"access_token\"]}}"
}
]
}
},
"typeVersion": 1
},
{
"name": "Cron",
"type": "n8n-nodes-base.cron",
"position": [
120,
400
],
"parameters": {
"triggerTimes": {
"item": [
{
"mode": "everyX",
"unit": "minutes",
"value": 10
}
]
}
},
"typeVersion": 1
},
{
"name": "Function",
"type": "n8n-nodes-base.function",
"position": [
900,
470
],
"parameters": {
"functionCode": "// Get the global workflow static data\nconst staticData = getWorkflowStaticData('global')\n\n// Access its data\nconst lastStarRssId = staticData.lastStarRssId\n\nlet list = []\n\nfor (const item of items[0].json.content){\n let currentId = item.id\n if(currentId == lastStarRssId) break;\n list.push({'json':{\n 'id': currentId,\n 'lastId': lastStarRssId,\n 'url': item.link,\n 'tags': item.tags,\n 'access_token': items[1].json.access_token\n }})\n}\n\n\n// Get the last ID from Rss Feed\nlet currentStarRssId = items[0].json.content[0].id\n\n// TODO: make a loop to get all the items beyond the last saved id\nif(!lastStarRssId || currentStarRssId != lastStarRssId)\n{ \n // Update its data\n staticData.lastStarRssId = currentStarRssId;\n \n}\nelse { list = [{'json':{ 'id': 'Nan', 'lastId': staticData.lastStarRssId }}] }\nreturn list;\n\n/*return [{'json':{'url': items[0].json.content.pop(), 'wallabag':items[1].json}}]*/"
},
"typeVersion": 1
},
{
"name": "IF",
"type": "n8n-nodes-base.if",
"position": [
1100,
470
],
"parameters": {
"conditions": {
"string": [
{
"value1": "={{$node[\"Function\"].json[\"id\"]}}",
"value2": "NaN",
"operation": "notEqual"
}
],
"boolean": []
}
},
"typeVersion": 1
},
{
"name": "NoOp",
"type": "n8n-nodes-base.noOp",
"position": [
1290,
570
],
"parameters": {},
"typeVersion": 1
},
{
"name": "Auth Wallabag",
"type": "n8n-nodes-base.httpRequest",
"position": [
490,
590
],
"parameters": {
"url": "http://{HERE-YOUR-WALLABAG-HOST}/oauth/v2/token",
"options": {},
"requestMethod": "POST",
"bodyParametersUi": {
"parameter": [
{
"name": "grant_type",
"value": "password"
},
{
"name": "client_id",
"value": "{HERE-YOUR-CLIENT_ID}"
},
{
"name": "client_secret",
"value": "{HERE-YOUR-CLIENT_SECRET}"
},
{
"name": "username",
"value": "{HERE-YOUR-USERNAME}"
},
{
"name": "password",
"value": "{HERE-YOUR-PASSWORD}"
}
]
}
},
"typeVersion": 1
},
{
"name": "Merge",
"type": "n8n-nodes-base.merge",
"position": [
710,
470
],
"parameters": {},
"typeVersion": 1
},
{
"name": "Get stared articles",
"type": "n8n-nodes-base.httpRequest",
"position": [
490,
400
],
"parameters": {
"url": "http://{HERE-YOUR-TTRSS-HOST}/tt-rss/api/",
"options": {},
"requestMethod": "POST",
"bodyParametersUi": {
"parameter": [
{
"name": "sid",
"value": "={{$json[\"content\"][\"session_id\"]}}"
},
{
"name": "op",
"value": "getHeadLines"
},
{
"name": "feed_id",
"value": "-1"
}
]
}
},
"typeVersion": 1
},
{
"name": "Auth TTRss",
"type": "n8n-nodes-base.httpRequest",
"position": [
320,
400
],
"parameters": {
"url": "http://{HERE-YOUR-TTRSS-HOST}/tt-rss/api/",
"options": {},
"requestMethod": "POST",
"bodyParametersUi": {
"parameter": [
{
"name": "op",
"value": "login"
},
{
"name": "user",
"value": "{HERE-YOUR-API-USER}"
},
{
"name": "password",
"value": "{HERE-YOUR-API-SECRET}"
}
]
}
},
"typeVersion": 1
}
],
"active": false,
"settings": {},
"connections": {
"IF": {
"main": [
[
{
"node": "HTTP Request",
"type": "main",
"index": 0
}
],
[
{
"node": "NoOp",
"type": "main",
"index": 0
}
]
]
},
"Cron": {
"main": [
[
{
"node": "Auth TTRss",
"type": "main",
"index": 0
}
]
]
},
"Merge": {
"main": [
[
{
"node": "Function",
"type": "main",
"index": 0
}
]
]
},
"Function": {
"main": [
[
{
"node": "IF",
"type": "main",
"index": 0
}
]
]
},
"Auth TTRss": {
"main": [
[
{
"node": "Get stared articles",
"type": "main",
"index": 0
}
]
]
},
"Auth Wallabag": {
"main": [
[
{
"node": "Merge",
"type": "main",
"index": 1
}
]
]
},
"Get stared articles": {
"main": [
[
{
"node": "Merge",
"type": "main",
"index": 0
}
]
]
},
"On clicking 'execute'": {
"main": [
[
{
"node": "Auth TTRss",
"type": "main",
"index": 0
}
]
]
}
}
}Workflow n8n Wallabag, publication d'articles, gestion de contenu : pour qui est ce workflow ?
Ce workflow s'adresse principalement aux rédacteurs, journalistes et professionnels de la gestion de contenu qui cherchent à automatiser la publication d'articles sur Wallabag. Il est conçu pour des utilisateurs ayant un niveau technique intermédiaire, souhaitant optimiser leur flux de travail sans nécessiter de compétences en développement avancées.
Workflow n8n Wallabag, publication d'articles, gestion de contenu : problème résolu
Ce workflow résout le problème de la gestion manuelle des publications sur Wallabag, qui peut être chronophage et sujet à des erreurs. En automatisant ce processus, les utilisateurs peuvent se concentrer sur la création de contenu plutôt que sur sa gestion. Cela réduit également le risque d'oublier de publier des articles importants, garantissant ainsi que toutes les informations pertinentes sont centralisées et accessibles.
Workflow n8n Wallabag, publication d'articles, gestion de contenu : étapes du workflow
Étape 1 : L'utilisateur déclenche manuellement le workflow.
- Étape 1 : Une requête HTTP est envoyée pour authentifier l'accès à Wallabag.
- Étape 2 : Un cron est mis en place pour exécuter le workflow à intervalles réguliers.
- Étape 3 : Une fonction personnalisée peut être ajoutée pour traiter les données des articles.
- Étape 4 : Des conditions sont vérifiées pour s'assurer que seuls les articles pertinents sont publiés.
- Étape 5 : Les articles sont publiés sur Wallabag, assurant une gestion efficace du contenu.
Workflow n8n Wallabag, publication d'articles, gestion de contenu : guide de personnalisation
Pour personnaliser ce workflow, vous pouvez modifier l'URL de la requête HTTP pour l'adapter à votre instance de Wallabag. Il est également possible d'ajuster les paramètres de la fonction pour traiter les articles selon vos besoins spécifiques. Si vous souhaitez intégrer d'autres outils, vous pouvez ajouter des noeuds supplémentaires pour récupérer des articles depuis d'autres sources. Assurez-vous de sécuriser vos clés d'API et de tester le workflow régulièrement pour garantir son bon fonctionnement.