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

iOS集成Google Sign-In调用YouTube API时出现无效凭据及401错误

解决YouTube API点赞视频时的401未授权错误

看起来你已经走通了Google Sign-In的流程,能正常获取用户频道信息,但在调用点赞API时栽了跟头——这个401错误其实是因为请求没有正确携带用户的授权凭证,咱们一步步来解决:

1. 先搞清楚问题出在哪

你之前尝试把access_token替换掉API_KEY放在parameters里,这是错误的用法!YouTube API的用户授权需要通过请求头的Bearer令牌来传递,而不是作为URL参数的key。API_KEY是给不需要用户授权的公共接口用的,点赞这种需要操作用户账号的接口必须用用户的access_token做身份验证。

2. 正确获取并传递access_token

首先确保你能拿到有效的access_token:

// 从已登录的Google用户获取access_token
guard let currentUser = GIDSignIn.sharedInstance().currentUser,
      let auth = currentUser.authentication,
      let accessToken = auth.accessToken else {
    print("用户未登录或获取access_token失败")
    return
}

然后修改你的点赞请求,把access_token放到请求头的Authorization字段里:

@IBAction func likeButtonTapped(_ sender: Any) {
    guard let currentUser = GIDSignIn.sharedInstance().currentUser,
          let auth = currentUser.authentication,
          let accessToken = auth.accessToken else {
        print("用户未登录或无有效凭证")
        return
    }
    
    // 构造请求头:Authorization: Bearer {access_token}
    let headers: HTTPHeaders = [
        "Authorization": "Bearer \(accessToken)",
        "Content-Type": "application/json"
    ]
    
    let parameters = [
        "id": "9T56NNzHE7A",
        "rating": "like"
    ]
    
    Alamofire.request(
        "https://www.googleapis.com/youtube/v3/videos/rate",
        method: .post,
        parameters: parameters,
        encoding: URLEncoding.default,
        headers: headers
    ).responseJSON { response in
        print("Like Response - \(response)")
    }
}

3. 额外需要注意的点

  • 检查access_token的权限:确认你的youtube.force-ssl权限已经正确申请,并且用户在授权时确实同意了这个权限(可以在Google账号的「第三方应用权限」里查看)。
  • 处理token过期:Google的access_token有效期很短(大概1小时),如果遇到401错误,可能是token过期了,需要调用currentUser.authentication.refreshTokens(completion:)来刷新token。
  • 不要混用API_KEY和access_token:API_KEY用于无需用户授权的接口(比如搜索视频),而需要操作用户账号的接口(点赞、订阅)必须用用户的access_token做Bearer授权。

按照这个方式修改后,应该就能正常调用点赞接口了!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 07:00:01