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

Google认证文档是否过时?Gmail API Ruby快速入门及OOB迁移求助

迁移命令行Ruby脚本的Gmail OAuth认证(替代OOB URI)

1. 更新OAuth客户端配置

在Google Cloud控制台的OAuth客户端设置中,将应用类型设为「桌面应用」(若之前已设置则无需修改),无需手动添加urn:ietf:wg:oauth:2.0:oob作为回调URI,Google会自动适配本地回调逻辑。

2. 修改Ruby代码中的认证逻辑

替换原代码中使用urn:ietf:wg:oauth:2.0:oob的部分,改用本地回调方案:

推荐方案:内置本地服务器监听

Google Auth Ruby库支持自动启动本地HTTP服务器接收授权回调,无需手动处理端口:

require 'googleauth'
require 'googleauth/stores/file_token_store'
require 'google/apis/gmail_v1'

CLIENT_SECRETS_PATH = 'client_secret.json'
TOKEN_STORE_PATH = 'tokens.yaml'
scope = Google::Apis::GmailV1::AUTH_GMAIL_READONLY

authorizer = Google::Auth::UserAuthorizer.new(
  Google::Auth::ClientId.from_file(CLIENT_SECRETS_PATH),
  scope,
  Google::Auth::Stores::FileTokenStore.new(file: TOKEN_STORE_PATH)
)

user_id = 'default'
credentials = authorizer.get_credentials(user_id)

if credentials.nil?
  # 使用本地回调生成授权URL
  url = authorizer.get_authorization_url(base_url: 'http://localhost')
  puts "在浏览器中打开此URL授权:\n#{url}"
  puts "输入授权码:"
  code = gets.chomp
  credentials = authorizer.get_and_store_credentials_from_code(
    user_id: user_id, code: code, base_url: 'http://localhost'
  )
end

# 初始化Gmail服务并授权
service = Google::Apis::GmailV1::GmailService.new
service.authorization = credentials

可选方案:固定本地回调端口

若需指定固定端口,可显式设置回调URI,并在Google Cloud控制台的OAuth客户端配置中添加对应地址(如http://localhost:8080):

authorizer = Google::Auth::UserAuthorizer.new(
  Google::Auth::ClientId.from_file(CLIENT_SECRETS_PATH),
  scope,
  Google::Auth::Stores::FileTokenStore.new(file: TOKEN_STORE_PATH),
  'http://localhost:8080' # 替换为自定义本地回调URI
)

3. 验证迁移流程

运行脚本后,按提示在浏览器打开授权URL,完成授权后:

  • 若使用内置服务器方案,脚本会自动捕获授权码并完成凭据存储
  • 若使用固定端口方案,需手动复制浏览器地址栏中的code参数值,输入到命令行中

注意事项

  • 确保OAuth客户端类型为「桌面应用」,这是命令行工具的适配类型
  • 删除旧的凭据存储文件(如tokens.yaml),避免旧OOB凭据导致冲突
  • 无需再使用urn:ietf:wg:oauth:2.0:oob,所有配置和代码均替换为本地回调逻辑

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 20:03:20