Discord Bot Bausatz đŸ€–

Ich lade dich gerne in meine Instanz ein! Ich weiß nicht, ob dein Plugin irgendwo protokolliert wird – ich könnte dir das gerne schicken, falls das hilft.

EDIT: Welche Berechtigungen hast du dem Bot bei der Autorisierung dort erteilt?

1 „GefĂ€llt mir“

Der Bot benötigt Administratorrechte:

Du musst die Berechtigungen ĂŒber den Browser erteilen, wie hier (und im OP) beschrieben:

So Àhnlich: https://discord.com/api/oauth2/authorize?client_id=DEIN_CLIENT_ID&scope=bot&permissions=8

Dein Problem liegt höchstwahrscheinlich auf Discord-Seite, da der Discourse-Bot-Server zu laufen scheint (du hast dies mit dem Befehl Ping! gezeigt). Daher sind die Discourse-Logs irrelevant.

Ich habe dieses Plugin gerade erneut mit der neuesten Discourse-Version getestet, und alles funktioniert (ich habe ein paar Gems auf eine modernere Version aktualisiert, um die KompatibilitĂ€t mit anderen Plugins sicherzustellen, was aber fĂŒr dein Problem irrelevant ist).

Ja, ich habe es bereits mehrmals erneut eingeladen, aber es hat sich nichts geĂ€ndert. Es ist ein Administrator und verfĂŒgt ĂŒber die Bot-Berechtigung. Ich bin die Person, die es auf den Discord einlĂ€dt, und ich bin der Besitzer des Discord-Servers. Es erkennt mich einfach nicht und gibt die Meldung zurĂŒck: „Sie haben keine Berechtigung, den Befehl discsync auszufĂŒhren!

1 „GefĂ€llt mir“

Haben Sie diese in den Discourse-Einstellungen konfiguriert?:

2 „GefĂ€llt mir“

Hurra! Es scheint, als hĂ€tte ich die Admin-Gruppen-ID irgendwie falsch formatiert! Es sieht so aus, als hĂ€tte mein Kopier-EinfĂŒge-Vorgang eine Zahl ĂŒbersehen


Als Folgefrage versuche ich nun, Personen in Discord basierend auf ihrem Vertrauenslevel in Discourse Farben zuzuweisen. Um die Vertrauenslevel zu ĂŒbertragen, sollte der Befehl meiner EinschĂ€tzung nach lauten:

!discsync false, 0, true

Ist das korrekt? Bei mir wird Folgendes zurĂŒckgegeben:

EDIT: Das Gleiche wird zurĂŒckgegeben, wenn ich den Befehl ohne Kommas ausfĂŒhre, also:

!discsync false 0 true

2 „GefĂ€llt mir“

Erhöhen Sie Ihre Sichtbarkeitsebene. Die standardmĂ€ĂŸigen automatisierten Gruppen haben standardmĂ€ĂŸig die Sichtbarkeit 1 („Angemeldete Benutzer“). Wenn dieser Wert auf Null gesetzt ist, werden die standardmĂ€ĂŸigen automatisierten Gruppen ausgeschlossen:

Null schließt nur Gruppen ein, die fĂŒr alle sichtbar sind, einschließlich anonymer Benutzer.

3 „GefĂ€llt mir“

Das ist jetzt in Ordnung. Vielen Dank – das wird sehr geschĂ€tzt.

Kann ich im Gegenzug etwas davon, was ich gelernt habe, in deinen Leitfaden einarbeiten? Falls nicht, kein Problem; ich möchte einfach nur deine UnterstĂŒtzung weitergeben.

3 „GefĂ€llt mir“

Das ist sehr freundlich. Ich wĂŒrde mich freuen, wenn Sie es bearbeiten wĂŒrden. Sie sollten das bereits können? Es ist ein Wiki.

Sie haben mir auch geholfen, mein GedÀchtnis aufzufrischen :slight_smile:

2 „GefĂ€llt mir“

Ich brauche eigentlich keine Rollensynchronisierung, aber ein Discord-Bot, der in bestimmten KanĂ€len des Discord-Servers BeitrĂ€ge erstellt, wenn im Forum neue Themen erstellt werden, wĂ€re schön. Gibt es dafĂŒr ein Plugin?

1 „GefĂ€llt mir“

Ja, dieses Plugin ist wahrscheinlich nicht das richtige Werkzeug dafĂŒr. Der Bot wird von deinem Discourse angetrieben und kann auf deine Discourse-Daten zugreifen (wo erlaubt und durch Befehle angestoßen), lĂ€uft aber in einem separaten Thread und wird daher nicht von Discourse-Ereignissen benachrichtigt.

Ich schĂ€tze, es könnte irgendwann machbar sein, ihn beispielsweise so zu erweitern, dass er nach neuen Themen in einer bestimmten Kategorie sucht. Das ist zwar nicht der beste Anwendungsfall fĂŒr diese Architektur, aber PRs sind willkommen.

Es klingt so, als mĂŒsstest du dich damit beschĂ€ftigen:

Oder

1 „GefĂ€llt mir“

Ja, ich habe beide Optionen untersucht. Die erste Option, Zapier, ist nicht kostenlos. Man kann bis zu 5 kostenlose Zaps erstellen, und das sind einstufige Zaps. Genau das wurde in diesem Thread gesagt, daher war die vorgeschlagene Alternative die discourse-chat-integration, die angeblich ein offizielles Plugin ist. Ich denke, das ist der beste Weg, um das zu erreichen, was ich möchte.

Die letzte Option scheint ein RSS-Feed-Plugin zu sein:

Update: Nachdem ich gelernt habe, die Regeln richtig einzurichten und die Webhooks zu konfigurieren, macht die chat-integration genau das, was ich wollte! Danke.

4 „GefĂ€llt mir“

Hey @merefield,

vielen Dank nochmal, dass du dich mit diesem Plugin gemeldet hast!

Ich habe alles wie in der Dokumentation beschrieben installiert. Ich verwende diesen Befehl: !discsync, und fĂŒr mich sieht alles gut aus. :smiling_face_with_three_hearts:

Bei einigen Benutzern (nicht bei allen) erhalte ich jedoch fĂŒr alle ihre Gruppen diesen Fehler:

Discourse Sync:  [11/31] Mitglied 'MaxMustermann' zu 'Member' hinzufĂŒgen
Discourse Sync:  Ich scheine jedoch keine Rechte dafĂŒr zu haben!
FEHLER auf Server XYZ (ID: 123123123123) fĂŒr Befehl ^add_role, undefinierte Methode add_role' fĂŒr nil:NilClass

Andere Benutzer können fĂŒr dieselbe Gruppe synchronisiert werden :thinking:

1 „GefĂ€llt mir“

Das deutet darauf hin, dass deine provider_uid in Discourse fĂŒr diesen Benutzer nicht festgelegt ist. Bitte untersuche dies.

Übrigens, gut gemacht, dass du das eingerichtet hast. Es ist ziemlich komplex und nichts fĂŒr schwache Nerven! :).

2 „GefĂ€llt mir“

Ich habe diese Abfrage im Knowledge Explorer-Plugin ausgefĂŒhrt:

SELECT *
FROM   user_associated_accounts  u 
WHERE  u.provider_name = 'discord' 

Aus bestimmten GrĂŒnden kann ich das Ergebnis nicht posten :smile:, aber ich habe bei jedem Benutzer die provider_uid ĂŒberprĂŒft und jeder Benutzer hat eine. Gibt es noch etwas anderes, das ich debuggen könnte?

1 „GefĂ€llt mir“

Dann ist das nÀchstwahrscheinlichste Problem, dass die aktuell zugeordnete Discord-UID falsch ist.

Das heißt, die Daten in Discourse werden nicht einer gĂŒltigen UID in Discord zugeordnet.

ÜberprĂŒfen Sie manuell den Datensatz dieses Benutzers in Discord und bestĂ€tigen Sie, dass er korrekt ist.

2 „GefĂ€llt mir“

Hey, das kann ich bestÀtigen. Der Benutzer hat eine andere UID in Discourse als in Discord.

Wie kann dieses Problem reproduziert werden?

1 „GefĂ€llt mir“

Könntest du die VerknĂŒpfung löschen und den Nutzer bitten, die Verbindung zu Discord erneut herzustellen? Wenn dies erneut auftritt, liegt möglicherweise ein Fehler bei der Social-Login-Funktion vor?

2 „GefĂ€llt mir“

Hey,

ich wollte nur kurz nachhaken. Ich habe mit den Personen gesprochen, die diese Probleme hatten. Wir konnten das mögliche Problem eingrenzen.

Der Nutzer hat sich mit seinem alten Discord-Konto angemeldet, mit dem er dem Server nicht beigetreten ist. Daher konnte der Sync-Bot den Discord-Nutzer wohl nicht finden und es ist ein Fehler aufgetreten.

2 „GefĂ€llt mir“

Danke fĂŒr die KlĂ€rung. Können Sie bestĂ€tigen, wie Sie das Problem gelöst haben? Haben Sie die Zuordnung gelöscht und ihn dann neu zuordnen lassen?

1 „GefĂ€llt mir“

Das haben wir gemacht. :blush:

2 „GefĂ€llt mir“