Ich versuche gerade, alles auf meine OAuth-Methoden umzustellen, und Discourse ist das Letzte auf meiner Liste.
Folgendes würde ich gerne abschließen, wenn es eine Funktion ist:
- Wie kann ich öffentliche/private Benutzerfelder erstellen, die auf ihrer Benutzerseite über sie angezeigt werden? Wie z. B.
Gruppenrang, den jeder sehen kann, aber wie z. B.Discord-ID, die nur Administratoren und Moderatoren sehen können (auch API)?
Wie implementiere ich das in Python mit Quart? Dies ist ein Code, den ich programmiert habe, obwohl die Dokumentation sehr unklar darüber ist, wie Daten für Discourse übergeben werden und wie Benutzerfelder erstellt werden, und versucht, sie nicht von Benutzern bearbeiten zu lassen.
from quart import Quart, redirect, request
from rblxopencloud import OAuth2App, Group
from roblox import RobloxUser
oauth_app = OAuth2App("ROBLOX_APP_ID", "ROBLOX_APP_SECRET", "ROBLOX_APP_REDIRECT")
app = Quart(__name__)
@app.route("/")
async def authentication_verify():
return redirect(oauth_app.generate_uri(["openid", "profile"]))
@app.route("/authentication/redirect")
async def authentication_redirect():
roblox_info = oauth_app.exchange_code(request.args.get('code'))
group_member: Group = RobloxUser.fetch_member(roblox_info.user, 4800717)
group_rank = "Test Subject"
if group_member != None:
group_rank = group_member.fetch_role().name
discord_id = "this-will-pull-from-my-db"
return {
"permalink": roblox_info.user.username,
"username": roblox_info.user.username,
"uri": roblox_info.user.profile_uri,
"avatar_url": roblox_info.user.generate_headshot(size=420, format="jpeg", is_circular=True),
# Diese möchte ich als Benutzerfelder haben (entweder öffentlich oder privat)
"group_rank": group_rank, # Öffentliches Benutzerfeld
"discord_id": discord_id, # Privates Benutzerfeld
"roblox_id": roblox_info.user.id, # Privates Benutzerfeld
}
app.run(host="host-ip-here", port=0000)
