Discourse Trust Levels for Discord

Yes. This is correct as far as I can tell, being a user of both plugins.

Patreon requires log-in via Patreon, then syncs your account to your pledge tier.

Would be great to sync Discord roles via Discourse, since Discourse has the information via Patreon already once logged in.

I’d like to gauge interest for an Discourse plugin that does the following:

  1. An administrative interface for an admin to connect their Discourse instance to a Discord instance via the Discord API. The authentication would be via OAuth 2.

  2. Controls to associate Discourse Groups with Discord Roles, so that members of a group have a certain discord role and vice versa.

Note that this won’t involve or rely on Discord OAuth as a method of user account authentication. The goal is a have a solution that is agnostic about the way you let you users sign up / login.

In terms of identifying users across both platforms, this will be handled by associating ids as a first step, then by email if the relevant id is not available.

If you’re interested in sponsoring such a plugin, now’s your chance. I have time to work on it next week.

@Bernstein @Hanzo1 @Watercolor_Games


Just an update here, we’re going ahead with building this.

Further details here:

If you want to sync Discourse Groups and Discord Roles, we’d appreciate a contribution to the Paypal pool for this work here (currently one sponsor):


@Hanzo1 @Wedgebert @chagara Are you guys still interested in syncing Discourse and Discord Groups and Roles? If so, we’re in the process of building an integration and need a few more backers to hit our (relatively speaking) low target of $1000 USD. Any contributions > $100 welcome.


We’re interested, but I’ll have to talk to our treasurer about getting donation money together.


I just chipped in some, we’re almost at the target.

For anybody here who is lurking and considering it, I want to emphasize how incredibly reasonable of a funding goal this is for such useful functionality.

There’s one day left and we’re currently $300 short. If you’re even slightly interested in this, now’s your chance to make it happen. :smiley:


We’ll be donating as soon as the person with access to the PayPal account gets online and does it.


Hey guys, just wanted to say I’m still following the project. Though I’ve moved away from using a forum specifically for my community, (we moved to reddit), it’s really awesome to see my MacGyvered-together proof of concept turn into a reality. I haven’t been able to follow the project much due to highschool and other personal reasons, but things are really shaping up from what I can tell. Good luck, guys! :slight_smile:


Donation has been made


Perfect advice :+1:

Heads up (and @featheredtoast) I’m working on a PR for this plugin to

  • change the class inheritance up a level to Auth::ManagedAuthenticator to
    • leverage the richer functionality to simplify the plugin
    • bring the implementation in line with Facebook and Google OAuth (storing additional info in user_associated_accounts)
  • store the user ID to facilitate my next step … :wink:

UPDATE: Submitted


This is a really interesting idea! Looking forward to see where it can go from here.

1 Like

Some significant further progress on integration … see if you can spot it :robot: :wink: (thanks to @falco for helping me clear an impediment)

=> Booting Puma
=> Rails 5.2.3 application starting in development 
=> Run `rails server -h` for more startup options
Starting CSS change watcher
Bot spawned, say "Ping!" on Discord!
[INFO : websocket @ 2019-06-30 11:00:05.038] Discord using gateway protocol version: 6, requested: 6
Puma starting in single mode...
* Version 3.12.1 (ruby 2.6.1-p33), codename: Llamas in Pajamas
* Min threads: 0, max threads: 16
* Environment: development
* Listening on tcp://
Use Ctrl-C to stop

This bot is responding on Discord determined by the code running on my Discourse plugin.

NB this is just proof of concept so far, potentially a little way off Production ready!


I now have kicking on Discord working depending on Trust Level on Discourse.

If you so choose you can kick all users on your Discord server that haven’t yet attained a minimum Trust Level on your Discourse forum.

I have yet to package this up and launch the plugin … watch this space.


OK kicking is now working. And what you see is running on a production instance of Discourse (the bot logic, obviously the screenshot is of Discord :D)

Still some testing to carry out, bugs to squash (especially for group sync) and a lot of documentation to do to walk people through setup (which unfortunately is not trivial).


It will also support a group ‘sync’ (copies over Discourse groups and membership depending on supplied criteria) on day 1.

NB We are still $200 short of target.

This was a mammoth piece of work.

Thanks to those who have contributed so far: supporters will get priority setup assistance.


I tried to contribute but it says “pool ended”?


I’ve made a new pool for further support of @merefield’s work here (annoyingly paypal doesn’t let you re-open pools):


(@merefield and I are working together)


Gosh, thanks Jeff!!!

Yes, if it’s not already obvious, Angus and I now collaborate across lots of work and indeed our team is growing …

Thanks you guy :grinning:

1 Like

Funding for this plugin is now a done deal and the plugin is now launched here: "Discord Bot": run one on your Discourse server & keep things in sync

… let’s continue any discussion related to that new plugin there.


This bot would do exactly what I need, if we could get it to auto link users with their discord accounts without having to type a command on the discord. Instead just use the discourse API to retrieve accounts that have a discord account linked to their profile using this method: Configuring Discord Login for Discourse

FYI to those that do use this (I’ve recently decided to go with this solution as it completes my workflow most ideally)

Per this issue I opened: https://github.com/alkalinethunder/discourse-tl-for-discord/issues/3

This will likely stop working at some point when they disable this type of API call. Is someone willing to update the JS to use the curl method as described by discours’es new API ? Discourse API Documentation