appcfg.py 使用 --oauth_refresh_token 更新时返回授权失败

1 投票
1 回答
598 浏览
提问于 2025-04-18 16:31

正如这里提到的,要使用无密码认证,我需要提供一个 --oauth_refresh_token。为了获取这个令牌,我需要查看 .appcfg_oauth_tokens 文件,但因为我现在使用的是 gcloud 命令行工具,所以凭据存储在 $GCLOUD_SDK_CONF/credentials 里。如果我从那里获取刷新令牌,然后运行 appcfg.py upload --oauth_refresh-token= app/,我的应用就能成功上传。但是,当我把这个刷新令牌放到 Travis 的配置里时,却出现了“未授权的客户端”错误。

错误信息如下:
ERROR client.py:440 获取访问令牌失败:{
"error" : "unauthorized_client"
}

有没有办法为 Travis 获取刷新令牌?(我也尝试过使用 drone.io,它原生支持 GAE 部署,但结果也是一样。)

谢谢。

1 个回答

1

我之前对gcloud工具里的appcfg.py和谷歌应用引擎(GAE)里的appcfg.py感到困惑。后来我切换回GAE的appcfg.py,问题就解决了(也就是用这个命令:/usr/local/google_appengine/appcfg.py --oauth2 --noauth_local_webserver update .)。现在我有了一个叫.appcfg_oauth2_tokens的文件,里面保存了刷新令牌(refresh_token)。我可以用这个令牌在构建成功时自动部署应用。

撰写回答