Übersicht
Der Slack-Konnektor bietet die Funktionalität, Channel-Nachrichten aus Slack-Workspaces abzurufen und im Fess-Index zu registrieren.
Für diese Funktion ist das Plugin fess-ds-slack erforderlich.
Unterstützte Inhalte
Nachrichten in öffentlichen Kanälen
Nachrichten in privaten Kanälen
Dateianhänge (optional)
Voraussetzungen
Die Installation des Plugins ist erforderlich
Eine Slack-App muss erstellt und Berechtigungen konfiguriert werden
Ein OAuth Access Token muss abgerufen werden
Plugin-Installation
Installieren Sie über die Administrationsoberfläche unter „System“ -> „Plugins“:
Laden Sie
fess-ds-slack-X.X.X.jarvon Maven Central herunterLaden Sie es über die Plugin-Verwaltungsoberfläche hoch und installieren Sie es
Starten Sie Fess neu
Oder weitere Details finden Sie unter Plug-ins.
Konfiguration
Konfigurieren Sie über die Administrationsoberfläche unter „Crawler“ -> „Datenspeicher“ -> „Neu erstellen“.
Grundeinstellungen
| Einstellung | Beispielwert |
|---|---|
| Name | Company Slack |
| Handler-Name | SlackDataStore |
| Aktiviert | Ein |
Parameter-Einstellungen
token=xoxp-your-token-here
channels=general,random
file_crawl=false
include_private=false
Parameterliste
| Parameter | Erforderlich | Beschreibung |
|---|---|---|
token | Ja | OAuth Access Token der Slack-App |
channels | Ja | Zu crawlende Kanäle (kommagetrennt oder *all) |
file_crawl | Nein | Auch Dateien crawlen (Standard: false) |
include_private | Nein | Private Kanäle einschließen (Standard: false) |
Skript-Einstellungen
title=message.user + " #" + message.channel
digest=message.text + "\n" + message.attachments
content=message.text
created=message.timestamp
timestamp=message.timestamp
url=message.permalink
Verfügbare Felder
| Feld | Beschreibung |
|---|---|
message.text | Textinhalt der Nachricht |
message.user | Anzeigename des Nachrichtenabsenders |
message.channel | Kanalname, in dem die Nachricht gesendet wurde |
message.timestamp | Sendezeitpunkt der Nachricht |
message.permalink | Permalink der Nachricht |
message.attachments | Fallback-Informationen zu Dateianhängen |
Slack-App konfigurieren
1. Slack-App erstellen
Besuchen Sie https://api.slack.com/apps:
Klicken Sie auf „Create New App“
Wählen Sie „From scratch“
Geben Sie den App-Namen ein (z.B.: Fess Crawler)
Wählen Sie den Workspace
Klicken Sie auf „Create App“
2. OAuth & Permissions konfigurieren
Im Menü „OAuth & Permissions“:
Bot Token Scopes hinzufügen:
Nur für öffentliche Kanäle:
channels:history- Lesen von Nachrichten in öffentlichen Kanälenchannels:read- Lesen von Informationen öffentlicher Kanäle
Private Kanäle einschließen (include_private=true):
channels:historychannels:readgroups:history- Lesen von Nachrichten in privaten Kanälengroups:read- Lesen von Informationen privater Kanäle
Auch Dateien crawlen (file_crawl=true):
files:read- Lesen von Dateiinhalten
3. App installieren
Im Menü „Install App“:
Klicken Sie auf „Install to Workspace“
Überprüfen Sie die Berechtigungen und klicken Sie auf „Zulassen“
Kopieren Sie das „Bot User OAuth Token“ (beginnt mit
xoxb-)
Bemerkung
Normalerweise wird das Bot User OAuth Token verwendet, das mit xoxb- beginnt, aber in den Parametern kann auch das User OAuth Token verwendet werden, das mit xoxp- beginnt.
4. Zu Kanälen hinzufügen
Fügen Sie die App zu den zu crawlenden Kanälen hinzu:
Öffnen Sie den Kanal in Slack
Klicken Sie auf den Kanalnamen
Wählen Sie den Tab „Integrationen“
Klicken Sie auf „App hinzufügen“
Fügen Sie die erstellte App hinzu
Anwendungsbeispiele
Bestimmte Kanäle crawlen
Parameter:
token=xoxb-your-slack-bot-token-here
channels=general,random,tech-discussion
file_crawl=false
include_private=false
Skript:
title=message.user + " #" + message.channel
digest=message.text + "\n" + message.attachments
content=message.text
created=message.timestamp
timestamp=message.timestamp
url=message.permalink
Alle Kanäle crawlen
Parameter:
token=xoxb-your-slack-bot-token-here
channels=*all
file_crawl=false
include_private=false
Skript:
title=message.user + " #" + message.channel
content=message.text
created=message.timestamp
url=message.permalink
Private Kanäle einschließen
Parameter:
token=xoxb-your-slack-bot-token-here
channels=*all
file_crawl=false
include_private=true
Skript:
title=message.user + " #" + message.channel
digest=message.text
content=message.text + "\nAnhang: " + message.attachments
created=message.timestamp
url=message.permalink
Mit Dateien crawlen
Parameter:
token=xoxb-your-slack-bot-token-here
channels=general,random
file_crawl=true
include_private=false
Skript:
title=message.user + " #" + message.channel
content=message.text
created=message.timestamp
url=message.permalink
Detaillierte Nachrichteninformationen einschließen
Skript:
title="[" + message.channel + "] " + message.user
content=message.text
digest=message.text.substring(0, Math.min(200, message.text.length()))
created=message.timestamp
timestamp=message.timestamp
url=message.permalink
Fehlerbehebung
Authentifizierungsfehler
Symptom: invalid_auth oder not_authed
Zu überprüfen:
Überprüfen Sie, ob das Token korrekt kopiert wurde
Überprüfen Sie das Token-Format:
Bot User OAuth Token: beginnt mit
xoxb-User OAuth Token: beginnt mit
xoxp-
Überprüfen Sie, ob die App im Workspace installiert ist
Überprüfen Sie, ob die erforderlichen Berechtigungen erteilt wurden
Kanal nicht gefunden
Symptom: channel_not_found
Zu überprüfen:
Überprüfen Sie, ob der Kanalname korrekt ist (# ist nicht erforderlich)
Überprüfen Sie, ob die App zum Kanal hinzugefügt wurde
Bei privaten Kanälen
include_private=truesetzenÜberprüfen Sie, ob der Kanal existiert und nicht archiviert ist
Keine Nachrichten abrufbar
Symptom: Crawling erfolgreich, aber 0 Nachrichten
Zu überprüfen:
Überprüfen Sie, ob die erforderlichen Scopes erteilt wurden:
channels:historychannels:readBei privaten Kanälen:
groups:history,groups:read
Überprüfen Sie, ob Nachrichten im Kanal existieren
Überprüfen Sie, ob die App zum Kanal hinzugefügt wurde
Überprüfen Sie, ob die Slack-App aktiviert ist
Fehler wegen fehlender Berechtigungen
Symptom: missing_scope
Lösung:
Fügen Sie die erforderlichen Scopes in den Slack-App-Einstellungen hinzu:
Öffentliche Kanäle:
channels:historychannels:read
Private Kanäle:
groups:historygroups:read
Dateien:
files:read
Installieren Sie die App neu
Starten Sie Fess neu
Dateien werden nicht gecrawlt
Symptom: Dateien werden trotz file_crawl=true nicht abgerufen
Zu überprüfen:
Überprüfen Sie, ob der Scope
files:readerteilt wurdeÜberprüfen Sie, ob tatsächlich Dateien im Kanal gepostet wurden
Überprüfen Sie die Zugriffsberechtigungen für die Dateien
API-Ratenbegrenzung
Symptom: rate_limited
Lösung:
Verlängern Sie das Crawl-Intervall
Reduzieren Sie die Anzahl der Kanäle
Teilen Sie in mehrere Datenspeicher auf und verteilen Sie die Zeitplanung
Slack-API-Limits:
Tier 3-Methoden: 50+ Anfragen/Minute
Tier 4-Methoden: 100+ Anfragen/Minute
Bei großen Nachrichtenmengen
Symptom: Crawling dauert lange oder Timeout
Lösung:
Teilen Sie Kanäle auf und konfigurieren Sie mehrere Datenspeicher
Verteilen Sie die Crawl-Zeitplanung
Erwägen Sie Einstellungen zum Ausschließen alter Nachrichten
Erweiterte Skript-Beispiele
Nachrichten filtern
Nur Nachrichten eines bestimmten Benutzers indizieren:
if (message.user == "Max Mustermann") {
title=message.user + " #" + message.channel
content=message.text
created=message.timestamp
url=message.permalink
}
Nur Nachrichten mit bestimmten Schlüsselwörtern:
if (message.text.contains("wichtig") || message.text.contains("Störung")) {
title="[Wichtig] " + message.user + " #" + message.channel
content=message.text
created=message.timestamp
url=message.permalink
}
Nachrichten formatieren
Zusammenfassung langer Nachrichten:
title=message.user + " #" + message.channel
content=message.text
digest=message.text.length() > 100 ? message.text.substring(0, 100) + "..." : message.text
created=message.timestamp
url=message.permalink
Kanalnamen formatieren:
title="[Slack: " + message.channel + "] " + message.user
content=message.text
created=message.timestamp
url=message.permalink
Weiterführende Informationen
Übersicht der Datenspeicher-Konnektoren - Übersicht der Datenspeicher-Konnektoren
Atlassian-Konnektor - Atlassian-Konnektor
Datenspeicher-Crawl - Leitfaden zur Datenspeicher-Konfiguration