Google Calendar API v3
動作検証
Windows 10
FileMaker 16,17,18
Mac OS 10.13.3
FileMaker Pro 18
iOS13
FileMaker Go 18
有料サンプル
ご支援頂ける場合、ご購入頂けると幸いです。
Q&A 不明な点は以下で問い合わせ下さい。
https://fm-aid.com/community/viewforum.php?id=6
準備
Google API プロジェクトの作成(2019.12.2x現在)
Google Developer Console にアクセス。
https://console.developers.google.com/
■プロジェクトの作成
(1)の部分をクリック。
※プロジェクトがない場合、[プロジェクトの選択]と表示されています。
(2)「新しいプロジェクト」をクリック
任意のプロジェクト名を設定し、[作成]をクリック
作成した「プロジェクト」を選択
■ライブラリ
「ライブラリ」をクリック
「Calendar」で検索
「Google Calendar API」を選択
[有効にする]をクリック
■認証情報
[認証情報]をクリック
[同意画面を構成]をクリック
[外部]を選択
[作成]をクリック
「アプリケーション名」を設定し、
[保存]をクリック
OAuth 同意画面 2021/04/05 追記
[アプリを公開]をクリック
(FileMakerで「[Get_AuthorizationCode]ボタンをクリック」したとき)
[認証情報]をクリック
[認証情報を作成]をクリック
[OAuth クライアント ID]をクリック
[その他]を選択
[作成]をクリック
「クライアント ID」
「クライアント シークレット」をコピーし、控えておく
■FileMaker(2022/11/16 追記)
ファイル:GoogleCalendarFM_Lib.fmp12 を修正してください。
スクリプト:Get_AuthorizationCode
redirect_uri=urn:ietf:wg:oauth:2.0:oob を変更
↓
redirect_uri=http://localhost
URL を開く [ Let([ ¢URi="https://accounts.google.com/o/oauth2/auth?scope={scope}&redirect_uri=urn:ietf:wg:oauth:2.0:oob&response_type=code&client_id={ClientId}" ]; Substitute ( ¢URi ; ["{scope}" ; AppPermission::Scope] ; ["{ClientId}" ; GoogleApiProject::ClientId] ) ) ] [ ダイアログなし ]
↓
URL を開く [ Let([ ¢URi="https://accounts.google.com/o/oauth2/auth?scope={scope}&redirect_uri=http://localhost&response_type=code&client_id={ClientId}" ]; Substitute ( ¢URi ; ["{scope}" ; AppPermission::Scope] ; ["{ClientId}" ; GoogleApiProject::ClientId] ) ) ] [ ダイアログなし ]
スクリプト:Get_Token
--data redirect_uri=urn:ietf:wg:oauth:2.0:oob を変更
↓
--data redirect_uri=http://localhost
変数を設定 [ $Option; 値:Let( ¢option=" --request POST --data code={Authorization_Code} --data client_id={client_id} --data client_secret={client_secret} --data redirect_uri=urn:ietf:wg:oauth:2.0:oob --data grant_type=authorization_code " ; Substitute ( ¢option ; ["{Authorization_Code}" ; GLOBAL::gAuthorization_Code] ; ["{client_id}" ; GoogleApiProject::ClientId ] ; ["{client_secret}" ; GoogleApiProject::ClientSecret ] ) ) ]
↓
変数を設定 [ $Option; 値:Let( ¢option=" --request POST --data code={Authorization_Code} --data client_id={client_id} --data client_secret={client_secret} --data redirect_uri=http://localhost --data grant_type=authorization_code " ; Substitute ( ¢option ; ["{Authorization_Code}" ; GLOBAL::gAuthorization_Code] ; ["{client_id}" ; GoogleApiProject::ClientId ] ; ["{client_secret}" ; GoogleApiProject::ClientSecret ] ) ) ]
変数を設定 [ $URi; 値:"https://accounts.google.com/o/oauth2/token" ]
■FileMaker
サンプルファイル「GoogleCalendarFM_Lib.fmp12」
レイアウト:GoogleApiProject を開く
「クライアント ID」
「クライアント シークレット」をそれぞれ設定
レイアウト:Application Permission を開く
Title:
(任意) calendar/Googleアカウント の様な入力がおすすめ
例:calendar/xxxxx@gmail.com
FMid_GoogleApiProject:
レイアウト:GoogleApiProject で作成した APIプロジェクトを選択
Scope:
https://www.googleapis.com/auth/calendar
[Get_AuthorizationCode]ボタンをクリック
ブラウザが開きます
操作するカレンダーのGoogleアカウントでログインor選択
[詳細]をクリック
[アプリ名(安全ではないページ)に移動]をクリック
[許可]をクリック
[許可]をクリック
コードをコピー
サンプルファイル「GoogleCalendarFM_Lib.fmp12」
レイアウト:GoogleApiProject を開く
「クライアント ID」
「クライアント シークレット」をそれぞれ設定
レイアウト:Application Permission を開く
Title:
(任意) calendar/Googleアカウント の様な入力がおすすめ
例:calendar/xxxxx@gmail.com
FMid_GoogleApiProject:
レイアウト:GoogleApiProject で作成した APIプロジェクトを選択
Scope:
https://www.googleapis.com/auth/calendar
[Get_AuthorizationCode]ボタンをクリック
ブラウザが開きます
操作するカレンダーのGoogleアカウントでログインor選択
[詳細]をクリック
[アプリ名(安全ではないページ)に移動]をクリック
[許可]をクリック
[許可]をクリック
コードをコピー
(2022/11/16 追記)
クエリパラメータ code= をコピー
FileMaker に戻り、
サンプルファイル「GoogleCalendarFM_Lib.fmp12」
レイアウト:Application Permission を開く
[Get_Token]ボタンをクリック
先程コピーしたコードを貼り付け
[OK]をクリック
「RefreshToken」「AccessToken」が取得できれば準備完了
■FileMakerからGoogle Calendar イベント、追加・編集・削除
サンプルファイル:Example_Calendar.fmp12
フィールド:GoogleCalendarFM_Lib_AppPermission_id
「GoogleCalendarFM_Lib.fmp12」で作成したレコードを設定。
必要な情報を入力して、[Insert][update][get][delete]をクリック
できた!嬉しいです!使えました! これから使い込んでみます!
返信削除連絡方法が無いのでこちらで失礼します。こちらのカレンダーのソフトは以前購入させていただきました。スプレッドシートの内容をファイルメーカーに連動するソフトもあったような気がしたのですがありますでしょうか?
返信削除Googleスプレッドシートと連携するモノの公開はアリません。
返信削除寿商会さんが簡易的にできるサンプルを公開していたと思います。(たぶん)
https://kotovuki.co.jp/archives/13512