Estoy en medio de intentar cambiar todo para usar mis métodos OAuth, y Discourse es lo último en mi lista.
Me encantaría completar las cosas si es una característica:
- ¿Cómo crearía campos de usuario públicos/privados para mostrar en su página de usuario sobre ellos? Como
Rango de Grupopara que cualquiera lo vea, pero comoID de Discordpara que solo los administradores y moderadores puedan verlo (¿también la API)?
Además, ¿cómo implementaría esto en Python usando Quart? Este es un código que programé, aunque la documentación es muy poco clara sobre cómo pasar datos para Discourse y cómo hacerlo, incluidos los campos de usuario, y tratar de evitar que los usuarios los editen.
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 = "Sujeto de Prueba"
if group_member != None:
group_rank = group_member.fetch_role().name
discord_id = "esto-se-extraerá-de-mi-bd"
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),
# Estos me gustaría que fueran campos de usuario (públicos o privados)
"group_rank": group_rank, # Campo de Usuario Público
"discord_id": discord_id, # Campo de Usuario Privado
"roblox_id": roblox_info.user.id, # Campo de Usuario Privado
}
app.run(host="ip-del-host-aqui", port=0000)
