使用YouTube Data API v3时mine参数授权失败问题排查
问题排查方案
权限范围不匹配:你当前使用的
https://www.googleapis.com/auth/youtube.force-ssl仅用于强制API请求通过SSL加密,并不具备读取用户订阅数据的权限。要访问自身订阅列表,需申请https://www.googleapis.com/auth/youtube.readonly(只读权限)或https://www.googleapis.com/auth/youtube(读写权限)。请先在Google Cloud控制台的OAuth同意屏幕中更新权限范围,同时确保Firebase登录的授权请求中包含该权限。Firebase登录未携带正确Scope:即便在控制台配置了权限,若Firebase Auth发起登录请求时未传入所需的YouTube权限Scope,获取到的access token也不会包含对应权限。需在Firebase Google登录配置中明确添加目标Scope,示例代码如下:
const provider = new firebase.auth.GoogleAuthProvider(); provider.addScope('https://www.googleapis.com/auth/youtube.readonly'); firebase.auth().signInWithPopup(provider);Access Token有效性验证:
- 确认token未过期,Google access token有效期通常为1小时,过期需重新刷新;
- 解码access token(可使用JWT解码工具),检查
scope字段是否包含所需的YouTube权限,若未包含则说明登录流程未获取到正确权限。
参数传递冲突:你同时在请求参数和请求头中携带
access_token,可能导致API识别异常。建议仅保留一种传递方式,例如放在请求头中:axios.get('https://www.googleapis.com/youtube/v3/subscriptions', { params: { part: 'snippet', mine: true }, headers: { 'Authorization': `Bearer ${accessToken}` } });
内容的提问来源于stack exchange,提问作者Aditya Nagare
相关产品推荐
相关产品推荐

