You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

调用Roblox用户描述API返回401 Unauthorized问题求助

解决Roblox用户描述API POST请求401未授权问题

你的代码存在几个关键问题,导致请求始终返回401未授权,以下是问题分析和修复方案:

问题点

  • CSRF Token获取逻辑错误:直接用无会话的requests.post请求auth.roblox.com,没有携带你的.ROBLOSECURITY令牌,无法触发正确的CSRF Token返回;且Roblox通常通过GET/HEAD请求返回CSRF Token,而非POST。
  • Cookie设置方式错误:DescriptionSession.cookies['Cookie']的写法不符合requests库的Cookie设置规范,正确的方式是直接指定.ROBLOSECURITY作为Cookie键。
  • 请求体格式错误:Roblox API要求请求体为JSON格式,你直接传递字典会默认以form-data格式发送,不符合接口要求。
  • 多Session冗余创建:重复创建Session会丢失会话上下文,应该复用同一个Session完成所有请求流程。

修复后的代码

import requests

# 替换为你的有效.ROBLOSECURITY令牌
ROBLOSECURITY = "你的真实ROBLOSECURITY值"

session = requests.Session()
# 先设置会话Cookie
session.cookies[".ROBLOSECURITY"] = ROBLOSECURITY

# 发送HEAD请求触发CSRF Token返回(HEAD比GET更高效)
csrf_response = session.head("https://users.roblox.com/v1/description")
csrf_token = csrf_response.headers.get("x-csrf-token")

if csrf_token:
    session.headers["x-csrf-token"] = csrf_token
    # 用json参数传递请求体,确保格式正确
    update_response = session.post(
        "https://users.roblox.com/v1/description",
        json={"description": "Test"}
    )
    print(f"状态码: {update_response.status_code}")
    print(f"响应内容: {update_response.content.decode('utf-8')}")
else:
    print("未成功获取CSRF Token")

额外注意事项

  • 确保ROBLOSECURITY是有效且未过期的令牌,无效令牌会直接返回401。
  • Roblox API有请求频率限制,请勿频繁发送请求,避免被限流。
  • 账号需处于正常状态,无权限限制(比如未被封禁)才能修改个人描述。

内容的提问来源于stack exchange,提问作者xqzzcodes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 16:53:19