FileMakerで画像や動画を外部保存Part2!Google Drive APIを活用した効率的なファイル管理と共有方法

Picture of 執筆者:諏訪田 隆星
執筆者:諏訪田 隆星

FileMakerエンジニア

以前公開した「DropBoxでの外部保存」のPart2で
今回はGoogle Drive APIを使用した外部保存をやっていきます。

Google Driveは多くの人々が日常的に利用しているサービスですが、
別の外部ストレージサービス、
例えばDropboxやAWS S3などを使うと、
どうしても管理が複雑になりがちです。
特に、複数のツールを使い分けることになると、
管理場所が分散してしまったり、
追加の料金が発生する可能性があり、
ツールの一貫性が失われてしまうこともあります。
こうした問題は、業務の効率性や運用コストにも影響を与えるため、
できるだけ避けたいところです。

そこで今回は、
既にGoogleサービスを使っている場合に
外部ストレージの管理が一元化できる方法について
詳しく説明していきたいと思います。
※この記事で出てくるトークン等は使用不可になっています。

目次

Google Driveとは?

Google Driveは、DropBoxと同じく
クラウド上でファイルを保存、管理、共有できるサービスです。

しかし、DropBoxでは無料枠で利用しようと思うと
2GBまでの利用でかなり少ない容量です。

Google Driveは無料枠で15GBまで利用ができるといった
違いがあります。
また、有料のプランに変更したとしても
Google One(後ほど説明いたします)の方が安価になります。

ただし、
Google Driveだけでなく、
GmailやGoogleフォトも含めた合計の容量となりますので
その点は気をつけないといけません。

無料プランと有料プランの違い

Google Driveは無料でGoogleアカウントを開設した時点で
15GB使用できるようになっています。

しかし、15GBで足らない人はGoogle Oneという有料サービスを
使用することで容量を増やすことが可能です。

Basic
月額250円(年間3,000円)100GBの容量を利用できます。

Premium
月額1,300円(年間15,600円)2TBの容量を利用できます。

AI Premium
月額1,300円(年間15,600円)2TBの容量を利用できます。
1.5 Pro モデルを使用した Gemini Advanced を利用可能

基本プランは上記になりますが
もう少し細かく設定することも可能で自分に合った容量を
選択できるのもGoogleの良いところです。

また、契約時期によれば割引していることもありますので
期間内だけもっとお安い場合もあります。

※料金に関しては2024/10/24時点の情報になります。

Google Drive APIを使用するには

Googleのアカウント作成

もちろん使用するにはGoogleアカウントが必要になります

Googleのアカウント作成方法は
こちら
をご確認ください。

Google APIの使用するための設定

では、ここからがAPIを使用するための本題です。
まずは
Google Cloud Platformと検索してください。
おそらく一番上に下の画像のようなサイトが表示されます。

プロジェクトの作成

ではこちらを開くと上部ナビゲーションにコンソール
とあると思いますので
開いてみてください

すると、下の画像のような
画面が表示されますので
プロジェクトの選択を行います。

次に新しいプロジェクトを押します。

プロジェクト名(任意)
場所(ある場合)を選択し作成を押します。

作成ができたら再度
プロジェクトの選択をし
先ほど作成したプロジェクトを開きましょう。

OAuthの設定

次にAPIを使用するために必要な
OAuthの設定をしてきます。

サイドバーにあるOAuth同意画面をクリックしてください。

 

するとOAuthの同意画面の設定が開きますので
外部を選択し作成します。

アプリ名
ユーザーサポートメールアドレス
デベロッパーの連絡先情報

の3つを入力し保存し次へを押します

画像のように
 DriveAPIなどのGoogleのサービス名で登録しようとすると
エラーが返ってきますので
注意してください。

保存し次へ行くとスコープの設定がありますが
今回は設定しませんので
このまま次へいきます。

次にテストユーザーの設定もありますが
今回は設定しませんので次にいきます。

最後に内容を確認しダッシュボードに戻り
アプリを公開にします。

認証の設定

サイドバーの認証情報をクリックしてください。
画面が切り替わったら
認証情報を作成をクリックし、OAuthクライアントIDを選択します。

アプリケーションの種類を
テレビと入力が限られたデバイス
を選択し
名前は任意の名前を入力し作成をクリックします。

するとクライアントIDとクライアントシークレットが表示されるので
これをメモしておきましょう。

APIを利用する準備 2

次からは実際に認証をして設定を進めていきます。
以下のcurlのClientIdを先ほどメモしたクライアントIDに変換し
APIを叩きます。

検証URLを取得

				
					curl -d "client_id=[ClientId]&scope=https://www.googleapis.com/auth
     /drive.file" https://oauth2.googleapis.com
     /device/code
				
			

これを実行すると

				
					{
  "device_code": "AH-1Ng2gwWBcOR9-mupNMCAScMa9MOk28nqRil9k_pw9Wl96q8kXqFqqRw9Ea0FvPiQLcjV5HfeQbEfgbHUdUu4XZx33NXHL6nNg",
  "user_code": "WLF-RBL-RSP",
  "expires_in": 1800,
  "interval": 5,
  "verification_url": "https://www.google.com/device"
}
				
			

このようなJSONがJSONが返ってきますexpires_inに1800とありますので
このJSONの有効期限は30分です。

ではverification_urlにあるURLにアクセスしてみましょう。

アクセスするとコードの入力を求められるので
user_codeを入力します。

するとアクセスが求められるので続行を押します。

デバイスを接続しました
と表示されれば完了です。

次はリフレッシュトークンを取得していきます
以下のcurlのClientIdとClientSecretを
先ほどメモしたクライアントIDとクライアントシークレットに変換し
DviceCodeを検証で取得したdvice_codeに変換し
APIを叩きます。

リフレッシュトークンの取得

				
					curl -d "client_id= [CientId] &client_secret= [ClientSecret] &
         device_code= [DviceCode] &
         grant_type=urn%3Aietf%3Aparams%3Aoauth%3Agrant-type%3Adevice_code"
         -H "Contenttype: application/x-www-form-urlencoded"
         https://oauth2.googleapis.com/token
				
			

これを実行すると

				
					{
  "access_token": "ya29.a0AcM612wYGn8uXf08G-lqAqh7Qb1a1FCXZ1hBu1Uc-xQeskD2mJ7FvLybbkEoikdooQP2zBCDFWGqQP89mvKu4G_XKjHXRSbJWuWcwklaV_aqLdZSFH5pqSx8GlNRFuC3lDq3b49ybxH6CBW7Qdno5nzA-1t6K2RD2a58s2srCgYKAccSARISFQHGX2MiD14iZ95em3U-leQFF96KVQ0175",
  "expires_in": 3599,
  "refresh_token": "1//0e2GcTgmEoFi1CgYIARAAGA4SNwF-L9IrVJ2vej4TaAabWpW9WjHwaGz25O5LNBnYkqWC_GU4Y-wo7iBIvVHQqkTOEjIifdXVrXQ",
  "scope": "https://www.googleapis.com/auth/drive.file",
  "token_type": "Bearer"
}
				
			

このようなJSONが返ってきますexpires_inに3599とありますので
このJSONの有効期限は59分です。

この時間が切れたら
アクセストークンの有効期限が切れますので
リフレッシュトークンで再取得しましょう。

ファイルをGoogle Drive APIでアップロードする

これでアクセストークンがいつでも取得できるようになったので
Google Driveにアップしていってみましょう。

以下のAccess Tokenを取得した
アクセストークンに入れ替え
FileNameをファイル名
@移行をファイルパスを選択します。

				
					curl -X POST -L "https://www.googleapis.com/upload/drive/v3/files?uploadType=multipart" \
     -H "Authorization: Bearer AccessToken" \
     -H "Content-Type: multipart/form-data" \
     -F "metadata={name : 'FileName'};type=application/json;charset=UTF-8" \
     -F "file=@/path/to/your/file"
				
			

これを実行すると

				
					{
  "kind": "drive#file",
  "id": "118Tb7nntREmfK73MzSFAabKmzp65jSZj",
  "name": "test.png",
  "mimeType": "image/png"
}

				
			

このようなJSONが返ってきて
ファイル名やidなどが返ってきます。

idを使用することでファイルの検索やダウンロードが可能となります。

まとめ

いかがでしたでしょうか。

GoogleのAPIには本当にたくさんのAPIがあり
様々なサービスと組み合わせることが可能です。

しかし、GoogleのAPIは認証や
スコープなど設定がかなり多くあり
扱いにくい傾向があります。
また、DropBox同様GoogleのAPIは少し難易度が高く専門性が高くなってきます。
今後別ドライブに保存を検討している
現在別のドライブに保存していおりGoogleにまとめたい
などあればぜひお問い合わせください。

また、株式会社ブリエではFileMakerを使った業務改善を行なっており
APIをつなげてほしい、業務改善がシステムでできないかを検討している、
などあれば是非一度お問い合わせください。

まずは、資料請求

ダウンロードできる資料の内容
・資料はすぐにメールで届きます
・1分でわかる株式会社ブリエの会社概要
・FileMaker開発の概算料金

無料相談はこちら

お問い合わせ・ご相談できること
・自社の業務の一元管理の進め方 / 改善について相談したい
・どのような機能が作れるのか知りたい
・自社に合う形で導入したときの料金を知りたい

Picture of 執筆者:諏訪田 隆星
執筆者:諏訪田 隆星

多岐にわたる業種での経験を経て、現在はFileMakerを中心に活躍中のエンジニアです。ローコード開発を得意としながらも、Django、React、Flutterなどの技術にも挑戦し、幅広い開発スキルを習得。常に自分の技術を磨き、より良いソリューションを提供できるよう、継続的にスキルアップを図っています。多彩な技術を駆使して、クライアントのニーズに応える柔軟性と、迅速かつ効果的な開発力が強みです。

【全国対応】株式会社ブリエは、企業の経営課題であるDX化、業務効率化、ペーパーレス化、情報の一元管理など、ビジネスニーズの変化に合わせてFileMakerで業務システムを開発し、柔軟に拡張して解決します。あらゆる業種や規模の企業、非営利団体、学校に固有の課題を解決するカスタムAppをご提案します。

新着記事
アーカイブ
まずは、資料請求

ダウンロードできる資料の内容
・資料はすぐにメールで届きます
・1分でわかる株式会社ブリエの会社概要
・FileMaker開発の概算料金

無料相談はこちら

お問い合わせ・ご相談できること
・自社の業務の一元管理の進め方 / 改善について相談したい
・どのような機能が作れるのか知りたい
・自社に合う形で導入したときの料金を知りたい