はじめに
Gmailからメールのデータを受け取っていい感じに処理するpythonスクリプトを書いています。
Quickstart を使えばAPIの有効化からクライアント情報(credentials.json)の取得まで1クリックで済んでしまいます。
この記事では、あえて手動で一から設定するとどうなるかを書いていきます。
今回はGmail APIを使いましたが、他のAPIでも基本的な手順は同じだと思います。
Gmail APIのクライアント認証情報を取得する
Quickstart でいうところの Step 1: Turn on the Gmail API を手動で設定する手順です。
プロジェクトの作成
Google API Console にアクセスします。
プロジェクト一覧ダイアログ(左上の「Google APIs」ロゴの右)から、新しいプロジェクトを作成します。
Gmail API を有効化
APIライブラリ にアクセスします。
先ほど作成したプロジェクトが選択されていることを確認して、Gmail APIを検索します。
Gmail API を有効化します。
同意画面と認証情報の作成
自動的に Gmail API の管理画面に移動します。
「認証情報を作成」をクリックするか、左側のメニューから「認証情報」→「+認証情報を作成」→「ウィザードで選択」と進みます。
今回はPythonスクリプトからAPIを利用するので、APIを呼び出す場所は「その他のUI(Windows、CLIツールなど)」を選択しました。
また、ユーザーの受信メールの情報を取得したいので、アクセスしたいデータの種類は「ユーザーデータ」を選択しました。
ここで選択する内容によってこの先のフロー、作成される認証情報が変わってきます。
今回は「ユーザーデータ」を選択しているので、同意画面を作成する必要があります。
(よくある「このアプリケーションを信頼しますか?」的な画面です)
ダイアログが出てくるので、「同意画面を設定」をクリックします。
User Type を選択し、同意画面を作成します。
今回は個人のアカウントなので「外部」にしました。
アプリケーション名などを適当に設定し、保存します。
※遊び心でアプリケーションロゴを設定しようとしたら、色々と確認が必要になり面倒なことになりました…。なりすまし対策でしょうか。
認証情報の作成画面に戻ります。
クライアントIDを作成します。
認証情報のJSONファイルをダウンロードします。
このJSONファイルが、Quickstart の Step 1: Turn on the Gmail API で作成される credentials.json にあたります。
おわりに
以上、Gmail API Quickstart の Step 1 を手動で設定する手順でした。
今回の手順だけでもGmail APIを使うことはできますが、ユーザーの同意画面(トークンの発行可否を確認する)で警告が出てしまいます。
アプリを公開する際には、別途確認リクエストをする必要があります。
credentials.json の中にclient_secretがありますが、これがどんな役割のものなのかがいまいち分かりません。
OAuth2.0について調べてみると、ネイティブアプリの場合はclient secretを持たないことになっているようですが…。
この辺を理解できたらまた何か書きたいと思います。