我正在尝试将所有内容切换为使用我的 OAuth 方法,而 Discourse 是我列表中的最后一项。
如果这是一项功能,我希望完成以下事项:
- 如何创建公共/私有用户字段以显示在他们的用户页面上?例如,任何人都可以看到的“组排名”,以及只有管理员和版主可以看到的“Discord ID”(也通过 API)?
另外,我该如何在 Python 中使用 Quart 实现这一点?这是我编写的一些代码,但文档非常不清楚如何为 Discourse 传递数据以及如何传递,包括用户字段,以及如何防止用户编辑它们。
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),
# 这些我希望成为用户字段(公共或私有)
"group_rank": group_rank, # 公共用户字段
"discord_id": discord_id, # 私有用户字段
"roblox_id": roblox_info.user.id, # 私有用户字段
}
app.run(host="host-ip-here", port=0000)
