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

使用Python Requests调用育碧API校验用户名时Authorization头问题排查

结论

你获取的接口返回结果完全符合设计预期,可以通过profiles数组是否为空判断用户名是否可用。

判断逻辑说明

该接口的核心功能是根据传入的nameOnPlatform(用户名)和platformType(平台类型)参数,匹配已注册的育碧账号数据:

  • 若用户名已被占用,接口返回状态码200,profiles数组中会包含匹配到的账号完整信息
  • 若用户名未被注册,接口返回状态码200,profiles数组为空

代码优化建议

你可以在现有代码中补充判断逻辑,参考示例如下:

import requests

def check():
    username = input("What name to check? :")
    print(" ")
    token = input("Enter token: ")

    # 用params参数传递查询条件,自动处理URL编码,避免特殊字符导致请求出错
    params = {
        "nameOnPlatform": username,
        "platformType": "uplay"
    }
    headers = {
        'Ubi-AppId':'c5393f10-7ac7-4b4f-90fa-21f8f3451a04',
        'Authorization': token,
        'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36',
        'Ubi-RequestedPlatformType':'uplay',
    }
    r = requests.get("https://public-ubiservices.ubi.com/v2/profiles", params=params, headers=headers)
    
    # 先判断请求是否成功,避免token过期等异常情况导致逻辑错误
    if r.status_code != 200:
        print(f"请求出错,状态码:{r.status_code},错误信息:{r.text}")
        return
    
    res_data = r.json()
    if len(res_data.get("profiles", [])) == 0:
        print(f"用户名 {username} 可用")
    else:
        print(f"用户名 {username} 已被占用")

print("Press ENTER to start checking")
input("")
check()

注意事项

  • 使用前先确认你的授权token有效,token过期会触发401权限错误,无法正常获取查询结果
  • 可以提前对输入的用户名做合法性校验,过滤掉不符合育碧命名规则的字符,减少无效请求
  • 高频调用接口可能会触发育碧的反爬限制,建议合理控制请求频率

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.19 19:36:04