J’essaie de tout basculer vers l’utilisation de mes méthodes OAuth, et Discourse est la dernière chose sur ma liste.
Les choses que j’aimerais compléter si c’est une fonctionnalité :
- Comment créer des champs utilisateur publics/privés à afficher sur leur page utilisateur à leur sujet ? Comme
Rang du groupeque tout le monde peut voir, mais commeID Discordque seuls les administrateurs et les modérateurs peuvent voir (ainsi que l’API) ?
Aussi, comment implémenter cela en Python en utilisant Quart ? Voici un code que j’ai programmé, bien que la documentation soit très peu claire sur la manière de passer des données pour Discourse et comment faire, y compris les champs utilisateur, et essayer de faire en sorte que les utilisateurs ne puissent pas les modifier.
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),
# Ces éléments j'aimerais qu'ils soient des champs utilisateur (publics ou privés)
"group_rank": group_rank, # Champ utilisateur public
"discord_id": discord_id, # Champ utilisateur privé
"roblox_id": roblox_info.user.id, # Champ utilisateur privé
}
app.run(host="host-ip-here", port=0000)
