Skip to content
Diese Seite wurde mit KI-Unterstützung erstellt und übersetzt. Falls Ihnen Ungenauigkeiten auffallen, helfen Sie gerne bei der Verbesserung. Auf GitHub bearbeiten

Lark / Feishu

PRX über die Open Platform API mit WebSocket-Langzeitverbindung oder HTTP-Webhook-Ereigniszustellung mit Lark (international) oder Feishu (China-Festland) verbinden.

Voraussetzungen

Schnelleinrichtung

1. Bot-App erstellen

  1. Gehen Sie zur Entwicklerkonsole und erstellen Sie eine neue Custom App
  2. Unter "Credentials" kopieren Sie die App ID und das App Secret
  3. Unter "Event Subscriptions" kopieren Sie den Verification Token
  4. Fügen Sie die Bot-Fähigkeit hinzu und konfigurieren Sie Berechtigungen:
    • im:message, im:message.group_at_msg, im:message.p2p_msg

2. Konfigurieren

toml
[channels_config.lark]
app_id = "cli_xxxxxxxxxxxxxxxx"
app_secret = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
verification_token = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
allowed_users = ["ou_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"]

Für Feishu (China):

toml
[channels_config.lark]
app_id = "cli_xxxxxxxxxxxxxxxx"
app_secret = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
verification_token = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
use_feishu = true
allowed_users = ["*"]

3. Überprüfen

bash
prx channel doctor lark

Konfigurationsreferenz

FeldTypStandardBeschreibung
app_idStringerforderlichApp-ID von der Lark/Feishu-Entwicklerkonsole
app_secretStringerforderlichApp Secret von der Entwicklerkonsole
verification_tokenStringnullVerifizierungstoken für Webhook-Validierung
encrypt_keyStringnullVerschlüsselungsschlüssel für Webhook-Nachrichtenentschlüsselung
allowed_users[String][]Erlaubte Benutzer-IDs oder Union-IDs. Leer = alle ablehnen. "*" = alle erlauben
mention_onlyboolfalseBei true nur auf @-Erwähnungen in Gruppen antworten. DMs werden immer verarbeitet
use_feishuboolfalseBei true Feishu (CN) API-Endpunkte statt Lark (international) verwenden
receive_modeString"websocket"Ereignisempfangsmodus: "websocket" (Standard, keine öffentliche URL nötig) oder "webhook"
portu16nullHTTP-Port nur für Webhook-Modus. Erforderlich wenn receive_mode = "webhook", für WebSocket ignoriert

Funktionen

  • WebSocket-Langzeitverbindung -- persistente WSS-Verbindung für Echtzeit-Ereignisse ohne öffentliche URL (Standardmodus)
  • HTTP-Webhook-Modus -- alternative Ereigniszustellung über HTTP-Callbacks für Umgebungen, die dies erfordern
  • Lark- und Feishu-Unterstützung -- wechselt automatisch API-Endpunkte zwischen Lark (international) und Feishu (China)
  • Bestätigungsreaktionen -- reagiert auf eingehende Nachrichten mit sprachspezifischen Reaktionen (zh-CN, zh-TW, en, ja)
  • DM- und Gruppen-Messaging -- verarbeitet sowohl Privatgespräche als auch Gruppenkonversationen
  • Mandanten-Zugriffstoken-Verwaltung -- holt und erneuert automatisch Mandanten-Zugriffstoken
  • Nachrichtendeduplizierung -- verhindert doppeltes Dispatching von WebSocket-Nachrichten innerhalb eines 30-Minuten-Fensters

Einschränkungen

  • WebSocket-Modus erfordert eine stabile ausgehende Verbindung zu Lark/Feishu-Servern
  • Webhook-Modus erfordert einen öffentlich erreichbaren HTTPS-Endpunkt
  • Der Bot muss einer Gruppe hinzugefügt werden, bevor er Gruppennachrichten empfangen kann
  • Feishu und Lark verwenden verschiedene API-Domains; stellen Sie sicher, dass use_feishu Ihrer Mandantenregion entspricht
  • Enterprise-App-Genehmigung kann je nach Admin-Richtlinien Ihres Mandanten erforderlich sein

Fehlerbehebung

Bot empfängt keine Nachrichten

  • Im WebSocket-Modus prüfen Sie, ob ausgehende Verbindungen zu open.larksuite.com (oder open.feishu.cn) erlaubt sind
  • Überprüfen Sie, ob die App die erforderlichen im:message-Berechtigungen hat und genehmigt/veröffentlicht wurde
  • Stellen Sie sicher, dass der Bot der Gruppe hinzugefügt wurde oder der Benutzer einen DM mit ihm begonnen hat

"Verification failed" bei Webhook-Ereignissen

  • Prüfen Sie, ob verification_token mit dem Wert in der Entwicklerkonsole übereinstimmt
  • Bei Verwendung von encrypt_key stellen Sie sicher, dass er genau der Konsoleneinstellung entspricht

Falsche API-Region

  • Wenn Sie einen Feishu (China) Mandanten verwenden, setzen Sie use_feishu = true
  • Wenn Sie einen Lark (international) Mandanten verwenden, stellen Sie sicher, dass use_feishu = false (der Standard) ist

Released under the Apache-2.0 License.