Google 不再支持使用要求您仅使用您的用户名和密码登录您的 Google 帐户的第三方应用程序或设备。
这是各种应用程序的问题,包括git send-email
. sendgmail
是 Google 用 go 编写的工具,允许使用 OAuth2 凭据。
使用需要在 Google Cloud 中进行sendgmail
某些配置,下载带有配置的 JSON 并重命名为然后运行一次:~/.sendgmail.json
$ GOPATH/bin/sendgmail [email protected] -setup
1. Ensure that you are logged in as [email protected] in your browser.
2. Open the following link and authorise sendgmail:
https://accounts.google.com/o/oauth2/auth?...
3. Enter the authorisation code:
我的~/.sendgmail.json
contains redirect_uris":["http://localhost"]
,因此单击的网站被重定向到 localhost(我的机器上没有网络服务器)并且我没有获得授权码。任何人都可以解释在 Google Cloud 设置中究竟要做什么才能使其正常工作吗?
按照以下步骤设置工作区。
在项目上启用 Gmail API。
设置 OAuth 同意页面。
创建凭据。
安装 sendgmail go 包:
go install github.com/CyCoreSystems/gmail-oauth/sendgmail@latest
运行包含的设置命令。
按照说明进行身份验证并重定向到非功能页面(由于 redirect_uri 是 localhost。)
您需要在提示中输入的授权代码可以从该非功能性重定向的 URL 中抓取。
这是 URL 的示例,您需要 GET 参数的值(即 after和 before
code
的整个字符串):code=
&scope
提交授权代码后,该工具似乎没有输出任何内容,但是通过以下方式测试向自己发送补丁文件是成功的: