如何通过GAS调用YouTube会员列表API?遇权限错误求助
解决YouTube Members API调用的"Access forbidden"权限错误
针对你遇到的GoogleJsonResponseException: Access forbidden错误,可按以下步骤排查修复:
确认YouTube Data API v3已启用
打开Apps Script项目关联的Google Cloud Console项目(在脚本编辑器的「设置」中找到「Google Cloud Platform (GCP) 项目」入口),搜索并启用「YouTube Data API v3」。未启用对应API是导致权限禁止的常见原因,即使权限范围配置正确,API未开启也会返回错误。重新完成OAuth授权
修改appscript.json添加权限范围后,旧的授权缓存不会自动更新:- 关闭当前脚本编辑器窗口
- 重新打开项目并运行
getPublicSubiscribers函数 - 在弹出的授权窗口中重新授予所有请求的权限
验证授权账号的频道权限
确保运行脚本的Google账号是目标YouTube频道的创作者或所有者,且该频道已开通会员功能。youtube.channel-memberships.creator权限仅允许访问账号自身拥有的频道会员数据,无法跨频道访问。修正代码中的语法错误
代码里的Logger.lo(result)是拼写错误,改为Logger.log(result)才能正常输出日志,修正后的代码:const getPublicSubiscribers = () => { let result = YouTube.Members.list("snippet", {"mode": 'all_current', "maxResults": 50 }); let nextPageToken = result.nextPageToken; const subs = [...result.items]; Logger.log(result); }补充频道ID参数(可选)
如果授权账号关联多个YouTube频道,可在API调用中指定channelId参数明确目标频道:let result = YouTube.Members.list("snippet", { "mode": 'all_current', "maxResults": 50, "channelId": "你的目标频道ID" });
内容的提问来源于stack exchange,提问作者Vinicius Ferreira
相关产品推荐
相关产品推荐

