PythonでGmailを扱いたいけど、2段階認証のエラーがでる!
そんなお悩みをこの記事では解決していきます。
結論を先に言うと、Googleのマイアカウントから簡単にパスワードを発行することができます。
やり方は本記事を参考にしてください。
- imaplib.errorの解消法
- GAS使用時のGmail2段階認証の突破方法
- Gmailのセキュリティパスワードの発行方法
環境
OS | Mac 10.15.4 |
Python | python 3.9 |
仮想環境 | Poetry |
Homebrew | 8.0.19 Homebrew |
【参考】PythonとGmailの連携をおさらい
PythonとGmail の連携の記事はこちらを参考にしてください。
【前提】Gmailの2段階認証を設定しているとエラーが出る
上記の記事では、通常のログインパスの設定を想定したのですが、
Gmailの2段階認証を設定している方も多くいるはずです。
僕自身、仕事では二段階認証を厳守しているので、Pythonから操作をしようとすると、以下のエラーがでてしまいます。
imaplib.error: b'[ALERT] Application-specific password required
解決方法は、Pythonからログインするために必要な、Googleのパスワードの発行すればOKです。
Google セキュリティ パスワード発行の方法
まずは以下から、マイアカウントにいきます。
次に、Googleアカウントのセキュリティから、下の方にある「アプリパスワード」を選択。
再度ログインを求められるので、ログイン。
アプリパスワードの作成画面が表示されたら、アプリとデバイスの選択を選択します。
追記:「その他(名前を入力)を選ぶ」と名前を入力できるため、パスワードが増えた際に管理が便利です。
ちなみに、僕はMacユーザーなので、Macを選択。
そしてGmailアプリとの連携を想定して、メールを選択しています。
「生成」を押すと、16桁のアルファベットが表示されます。
これがアプリパスワードです。
忘れないようにコピペしておきましょう。
Pythonスクリプト上に反映
最後に、Pythonスクリプトのパスワードを差し替えます。
通常のログインパスワードから、今回発行された16桁のパスワードに変更。
これで設定完了です。
いつも通りPythonを実行すれば、Gmailにログインできるはずです。
まとめ
Google APIの2段階認証時のパスワードの発行方法をお伝えしました。
特にGmailの連携を行うときに、二段階認証をしているケースが多いと思うので、非常に役に立つはずです。
imaplib.error: b'[ALERT] Application-specific password required
上記のエラーが出た際は、試してみてください。
この記事が参考になれば嬉しいです。
コメント