Estou no meio de tentar migrar tudo para usar meus métodos OAuth, e o Discourse é a última coisa na minha lista.
As coisas que eu adoraria completar se for um recurso:
- Como eu criaria campos de usuário públicos/privados para exibir em suas páginas de usuário sobre eles? Como
Rank do Grupopara qualquer um ver, mas comoID do Discordpara que apenas administradores e moderadores possam ver (também API)?
Além disso, como eu implementaria isso em python usando Quart? Este é um código que programei, embora a documentação seja muito pouco clara sobre como passar dados para o Discourse e como fazer isso, incluindo Campos de Usuário, e tentar fazer com que os usuários não possam editá-los.
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),
# Estes eu gostaria que fossem campos de usuário (públicos ou privados)
"group_rank": group_rank, # Campo de Usuário Público
"discord_id": discord_id, # Campo de Usuário Privado
"roblox_id": roblox_info.user.id, # Campo de Usuário Privado
}
app.run(host="host-ip-here", port=0000)
