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

Unity调用YouTube Data v3 API报UNAUTHENTICATED 有效AccessToken不被识别

问题核心原因

你调用的YouTube Data v3 liveBroadcasts 列表接口仅支持GET请求,你的代码存在请求方法错误、参数位置错误等问题,导致接口无法正确识别你的身份信息,触发401报错。

具体错误点如下:

  • 请求方法不匹配:你用UnityWebRequest.Post创建的请求默认是POST类型,接口仅接受GET请求,你传入的第二个参数"GET"不会修改请求的实际方法
  • 参数传递位置错误:该接口的所有业务参数(part、broadcastType、mine、key)都需要放在URL的查询字符串中,你放在JSON请求体里的参数完全不会被接口识别
  • 冗余请求配置:GET请求不需要设置UploadHandler,也不需要配置Content-Type请求头,多余配置可能会被服务端判定为非法请求
  • 参数编码错误:你提前对part参数做了URL编码,后续如果拼接参数时重复编码会导致参数解析失败

修正后的代码示例

using System.Collections.Generic;
using System.Linq;
using UnityEngine;
using UnityEngine.Networking;

IEnumerator GetLatestLiveChatID()
{
    // 构造查询参数
    Dictionary<string, string> queryParams = new Dictionary<string, string>()
    {
        {"part", "snippet,contentDetails,status"},
        {"broadcastType", "all"},
        {"mine", "true"},
        {"key", apiKey}
    };

    // 生成合法的查询字符串,自动处理URL编码
    string queryString = string.Join("&", queryParams.Select(kv => 
        $"{UnityWebRequest.EscapeURL(kv.Key)}={UnityWebRequest.EscapeURL(kv.Value)}"));
    string fullRequestUrl = $"https://youtube.googleapis.com/youtube/v3/liveBroadcasts?{queryString}";

    // 显式创建GET请求
    using (UnityWebRequest www = UnityWebRequest.Get(fullRequestUrl))
    {
        www.downloadHandler = new DownloadHandlerBuffer();
        // 仅保留Authorization头,不需要Content-Type
        www.SetRequestHeader("Authorization", "Bearer " + accessToken);

        yield return www.SendWebRequest();

        if (www.isNetworkError || www.isHttpError)
        {
            Debug.LogError($"请求失败:{www.error},返回内容:{www.downloadHandler.text}");
        }
        else
        {
            jsonString = www.downloadHandler.text;
            Debug.Log($"请求成功:{jsonString}");
        }
    }
}

额外注意事项

  1. 如果你已经传入了有效的Bearer令牌,apiKey参数可以省略,OAuth身份的优先级高于API密钥
  2. 调试时可以打印生成的fullRequestUrl,直接用接口测试工具带上相同的Authorization头请求,快速定位是否还有参数问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 22:12:00