CloudDataFusionでGoogleDriveを参照する方法

はじめに

Google Cloud 環境の Data Pipeline ツールで Google Driveにアクセスする方法を調べる機会がありました。

Google Drive の認証周りの手順が煩雑でしたので備忘録になります。

OAuth認証

公式ドキュメントの通りでは足りなかったので補足します。

      1. Google Cloud の [API とサービス] > [OAuth 同意画面] からアプリ情報を登録します。
        その時の注意事項として、スコープに「drive.readonly」を追加します。

      2. Google Cloud の [API とサービス] > [認証情報] から「OAuthクライアントID」を作成し、結果出力される「クライアントID」「クライアント シークレット」を保持します。
      3. 公式ドキュメントの5にある下記のURLをコピーし、「client_id」を編集します。
        https://accounts.google.com/o/oauth2/v2/auth?
        scope=https%3A//www.googleapis.com/auth/drive.readonly&
        access_type=offline&
        include_granted_scopes=true&
        response_type=code&
        state=state_parameter_passthrough_value&
        redirect_uri=http%3A//localhost:8080&
        client_id=199375159079-st8toco9pfu1qi5b45fkj59unc5th2v1.apps.googleusercontent.com
      4. 上で作成したURLをブラウザで開きます。画面上で Google ドライブへのアクセス権を求められるので付与します。

        付与を完了すると、[認証情報]で登録したURLへリダイレクトします。
        このURLから「code=xxxxxxx」の値を取得します。

        http://localhost:8080/?
        state=state_parameter_passthrough_value&
        code=4/0AX4XfWi6PsiJiPO4MjltrcD6uoRgwci-HX16aL1-Ax-tgqYgC47NnjtCCKRoVzv46m8aJw&
        scope=https://www.googleapis.com/auth/drive
        
      5. 公式ドキュメントの5にある下記のURLをコピーし、「code」「client_id」「client_secret」を編集します。
        curl -X POST -d "code=4/0AX4XfWjgRdrWXuNxqXOOtw_9THZlwomweFrzcoHMBbTFkrKLMvo8twSXdGT9JramIYq86w&client_id=199375159079-st8toco9pfu1qi5b45fkj59unc5th2v1.apps.googleusercontent.com&client_secret=q2zQ-vc3wG5iF5twSwBQkn68&redirect_uri=http%3A//localhost:8080&grant_type=authorization_code&access_type=offline" \
        https://oauth2.googleapis.com/token
        

        編集したURLをGoogle Cloud Platformの[Cloud Shell]で実行し、結果から「refresh_token」をコピーします。

      6. これまで取得した以下の3つの値をこの後使用します。
        • クライアントID
        • クライアント シークレット
        • refresh_token

    Data Pipeline ツール

    Data Pipeline ツールとして、Data Fusion を利用してGドライブにアクセスしてみます。

    1. Google Cloud の [Data Fusion] からインスタンスを開始します。
    2. [HUB] から Google Drive Plugins を Deploy します。
    3. Data Pipeline Studioを開始します。
    4. 「Google Drive Source」の [Authentication] に先で取得した「クライアントID」「クライアントシークレット」「refresh_token」を設定します。

    5. 他の必要な設定を行い、実行します。

     

    おわりに

    以上が Google Drive の認証関連のポイントになります。

    Data Fusion の記事は少なく英語の公式から解析しなければならなかったので、思ったよりも手間がかかりました。

    本記事が誰かの助けになれば幸いです。

     


    --------------------------
    システム開発のご要望・ご相談はこちらから

    コメントを残す

    メールアドレスが公開されることはありません。 が付いている欄は必須項目です