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

高校项目:Youtube自动回复器Google API认证报错求助

解决YouTube API评论回复的OAuth认证问题

你当前使用的是OAuth 2.0客户端凭据文件,而非用户完成授权后的令牌文件,前者本身不包含refresh_token字段,这是导致报错的核心原因。以下是具体解决步骤:

1. 生成包含refresh_token的授权令牌文件

需要通过OAuth授权流程获取用户级令牌,替换现有代码为以下内容:

import googleapiclient.discovery
import openai
import json
from google_auth_oauthlib.flow import InstalledAppFlow
from google.oauth2.credentials import Credentials

# 定义YouTube评论回复所需权限
SCOPES = ["https://www.googleapis.com/auth/youtube.force-ssl"]

# 加载你现有的客户端凭据文件(即包含client_id、client_secret的JSON)
flow = InstalledAppFlow.from_client_secrets_file(
    "C:\\Users\\Name\\Downloads\\你的客户端凭据文件名.json", SCOPES
)
# 启动本地授权服务器,完成账号登录授权
creds = flow.run_local_server(port=8080)

# 将授权后的令牌保存为token.json,后续可直接复用
with open("token.json", "w") as token:
    token.write(creds.to_json())

# 构建YouTube服务实例
youtube = googleapiclient.discovery.build('youtube', 'v3', credentials=creds)

2. 后续运行的简化流程

首次授权完成后,后续可直接加载保存的token.json(此时文件已包含refresh_token),使用你原本的代码结构即可:

import googleapiclient.discovery
import json
from google.oauth2.credentials import Credentials

with open('token.json') as f:
    info = json.load(f)

creds = Credentials.from_authorized_user_info(info)
# 令牌过期时会自动通过refresh_token刷新
youtube = googleapiclient.discovery.build('youtube', 'v3', credentials=creds)

关键注意事项

  • 确保你的OAuth客户端类型设置为桌面应用,否则redirect_uri无法匹配本地授权流程。
  • 授权时需使用拥有目标YouTube频道管理权限的账号登录,否则无法执行评论回复操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 15:48:29