3
2

More than 3 years have passed since last update.

Google APIのクライアント認証情報を取得する

Posted at

はじめに

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 2020-02-22 171133.png

Gmail 2020-02-22 171725.png

Gmail API を有効化

APIライブラリ にアクセスします。

Gmail 2020-02-22 224209.png

先ほど作成したプロジェクトが選択されていることを確認して、Gmail APIを検索します。

Gmail 2020-02-22 172210.png

Gmail API を有効化します。

同意画面と認証情報の作成

自動的に Gmail API の管理画面に移動します。
Gmail 2020-02-22 172329.png
「認証情報を作成」をクリックするか、左側のメニューから「認証情報」→「+認証情報を作成」→「ウィザードで選択」と進みます。

Gmail 2020-02-22 172638.png

今回はPythonスクリプトからAPIを利用するので、APIを呼び出す場所は「その他のUI(Windows、CLIツールなど)」を選択しました。
また、ユーザーの受信メールの情報を取得したいので、アクセスしたいデータの種類は「ユーザーデータ」を選択しました。

ここで選択する内容によってこの先のフロー、作成される認証情報が変わってきます。

今回は「ユーザーデータ」を選択しているので、同意画面を作成する必要があります。
(よくある「このアプリケーションを信頼しますか?」的な画面です)
ダイアログが出てくるので、「同意画面を設定」をクリックします。

Gmail 2020-02-22 172842.png

Gmail 2020-02-22 172955.png

User Type を選択し、同意画面を作成します。
今回は個人のアカウントなので「外部」にしました。

Gmail 2020-02-22 173133.png

アプリケーション名などを適当に設定し、保存します。
※遊び心でアプリケーションロゴを設定しようとしたら、色々と確認が必要になり面倒なことになりました…。なりすまし対策でしょうか。

認証情報の作成画面に戻ります。
クライアントIDを作成します。

Gmail 2020-02-22 173451.png

認証情報のJSONファイルをダウンロードします。
このJSONファイルが、QuickstartStep 1: Turn on the Gmail API で作成される credentials.json にあたります。

おわりに

以上、Gmail API QuickstartStep 1 を手動で設定する手順でした。

今回の手順だけでもGmail APIを使うことはできますが、ユーザーの同意画面(トークンの発行可否を確認する)で警告が出てしまいます。
Gmail 2020-03-04 214509.png

アプリを公開する際には、別途確認リクエストをする必要があります。

credentials.json の中にclient_secretがありますが、これがどんな役割のものなのかがいまいち分かりません。
OAuth2.0について調べてみると、ネイティブアプリの場合はclient secretを持たないことになっているようですが…。
この辺を理解できたらまた何か書きたいと思います。

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2