Googleは、ユーザー名とパスワードのみを使用してGoogleアカウントにログインする必要があるサードパーティ製のアプリや端末の使用をサポートしていません。
これは、次のようなさまざまなアプリケーションで問題になります。git send-email
。sendgmail
OAuth2 資格情報を使用できるように Google が作成したツールです。
使用するにはsendgmail
特定が必要です。Google Cloudの設定、設定を含む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
含まれているため、redirect_uris":["http://localhost"]
クリックしたWebサイトがlocalhostにリダイレクトされ(マイコンピュータにWebサーバーがない)、認証コードが表示されません。これを行うには、Google Cloud設定で正確に何をすべきかを説明できますか?
答え1
ワークスペースの設定説明に従ってくださいこのステップ。
Gmail APIを有効にするこのプロジェクトについて。
OAuth 同意ページを設定します。
- 承認されたドメインがないことを克服できるかもしれません。私のものの1つを含めました(他のGoogle OAuthワークフローで使用されています)。
- Gmail API ../auth/gmail.send の範囲が許可されていることを確認してください。他は必要ないようです。
- 自分を登録したテストユーザーだと思います。
資格情報を作成します。
- タイプ:OAuthクライアントID
- アプリケーションの種類:デスクトップアプリケーション(他のアプリケーションも機能します。リンクされた指示に従ってください)
sendgmail goパッケージのインストール:go install github.com/CyCoreSystems/gmail-oauth/sendgmail@latest
設定コマンドを実行してください。あなたが含めたように。
指示に従う認証して機能しないページにリダイレクトします(redirect_uriがlocalhostなので)。
プロンプトに入力する必要がある認証コードは、機能しないリダイレクトURLから取得できます。
code
以下は、GETパラメータの値(つまり、前後の文字列全体)が必要なURLの例です。code=
&scope
http://localhost/?state=state&code=foobarauthcode&scope=https://mail.google.com/
認証コードを送信した後、ツールは何も出力しないようですが、パッチファイルを自分に送信するテストは成功しました。
git send-email --smtp-server=$GOPATH/bin/sendgmail [email protected] patch-test.diff