2020年1月25日土曜日

Receive gmail with FileMaker|Gmail API を利用しGmailのメール・メッセージをFileMakerで取得する GmailFM_lib

FileMaker Gmail 受信 連携


-----
動作検証
Windows 10
FileMaker 16,17,18

Mac OS 10.13.3
FileMaker Pro 18

iOS 13.3
FileMaker Go 18

ダウンロード:
GmailFM_Lib_v*_trial.zip(試用版)
GmailFM_Lib_v*.zip(有償)
https://fm-aid.booth.pm/items/3815294

【Q&A】不明な点や、動作しない等、以下よりお問い合わせ下さい。
https://fm-aid.com/community/viewforum.php?id=7

準備
Google API プロジェクトの作成(2020.01.25現在)
Google Developer Console にアクセス。
https://console.developers.google.com/

■プロジェクトの作成
(1)の部分をクリック。
 ※プロジェクトがない場合、[プロジェクトの選択]と表示されています。
(2)「新しいプロジェクト」をクリック

任意のプロジェクト名を設定し、[作成]をクリック

作成した「プロジェクト」を選択

■ライブラリ
「ライブラリ」をクリック

「gmail」で検索
「Gmail API」を選択

[有効にする]をクリック

■認証情報
[認証情報]をクリック

[同意画面を構成]をクリック

[外部]を選択
[作成]をクリック

「アプリケーション名」を設定し、
[保存]をクリック


[認証情報]をクリック
[認証情報を作成]をクリック
[OAuth クライアント ID]をクリック

[その他]を選択
[作成]をクリック

「クライアント ID」
「クライアント シークレット」をコピーし、控えておく


OAuth 同意画面 (2022/11/02 追記)
公開ステータス:テスト
テストユーザー を追加して下さい(Googleアカウント)

(2022/11/16 追記)
OAuth 同意画面
公開ステータス:本番環境 に設定


v1.2は、以下修正済(2024/01/15 追記)
■FileMaker(2022/11/16 追記)
ファイル:GoogleApiFM_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
サンプルファイル「GoogleApiFM_Lib.fmp12」
レイアウト:GoogleApiProject を開く

「クライアント ID」
「クライアント シークレット」をそれぞれ設定
レイアウト:Application Permission を開く
Title:
(任意) calendar/Googleアカウント の様な入力がおすすめ
例:Gmail/xxxxx@gmail.com

GoogleAccount:
Googleアカウント(Gmail)を設定
例:xxxxx@gmail.com

FMid_GoogleApiProject:
レイアウト:GoogleApiProject で作成した APIプロジェクトを選択

Scope:
https://mail.google.com/

[Get_AuthorizationCode]ボタンをクリック

ブラウザが開きます
操作するGmailのGoogleアカウントでログインor選択


[詳細]をクリック

[アプリ名(安全ではないページ)に移動]をクリック

[許可]をクリック


[許可]をクリック
コードをコピー
(2022/11/16 追記)
クエリパラメータ code= をコピー




FileMaker に戻り、
サンプルファイル「GoogleApiFM_Lib.fmp12」
レイアウト:Application Permission を開く

[Get_Token]ボタンをクリック



先程コピーしたコードを貼り付け
[OK]をクリック


「RefreshToken」「AccessToken」が取得できれば準備完了
-----

2020年1月3日金曜日

FileMaker 検索条件を保存、保存した検索条件で検索を実行。SearchRequestMaker ver.2.0

FileMaker 検索条件を保存、保存した検索条件で検索を実行。
ファイル:SearchRequestMaker 一つで、複数のファイル・テーブル・レイアウトに対応。

SearchRequestMaker
Ver.2.0
検索実行・絞り込み・拡大 など連続した検索処理の保存可能

作成方法

使用方法

組み込み方法

Windows 10
FileMaker 16,17,18

Mac OS 10.13.3
FileMaker Pro 18

iOS13
FileMaker Go 18

完成品

ご支援頂ける場合、ご購入頂けると幸いです。
SearchRequestMaker.zip(500円)
Ver.2.0
https://fm-aid.stores.jp/items/5defaa7c7d31c9050a865abb
-----



検索条件の保存
検索を実行するレイアウトで検索モードに切り替え、検索値を入力
[SearchRequestMaker]ボタンをクリック

SearchRequestMakerのCardウインドウが開きます
[追加]ボタンをクリックで、現在の検索条件が保存されます
※Titleは、分かりやすいモノに変更しても構いません
※検索条件はJSONで保存されています。

検索ボタンをクリックで保存した検索条件で検索が実行されます

■■■■■
複数の検索(新規条件)の保存も可能です
-----


検索条件Set の作成
絞り込み・拡大 検索
例:Field02 検索条件「い」を保存
-----
[追加]ボタンをクリックし、フィールド:RetrievalMethod を「絞り込み」に変更

[検索条件Setを作成]ボタンをクリック
(1)(2)の順番にクリックすると、その順番に検索を実行できる検索条件が作成されます
検索条件は一時的にグローバル変数「$$SearchRequestSet」に保存されます
[登録]または、[更新]ボタンで検索条件Setが保存されます
[登録]新しく登録
[更新]現在の検索条件を更新
-----



今月・過去半年・過去1年 などの検索


日付などの検索条件を保存したJSONをコピーし、テキストエディタなどに貼り付け


日付部分を {今月} などに置き換えます

編集したJSONを「SearchRequestMaker.fmp12」のフィールド:JSONへ貼り付け


置換テーブルの設定で検索値を計算値に置き換える事ができます
例:
{今月} → LET([D = Get(CurrentDate)];Year(D) & "/" & Month ( D )& "/*")
結果:2019/12/* など
初期値では、{過去半年}・{過去1年} が設定されています
※置換デーブルは、最大256件まで登録可能
-----



ポータルの検索条件も保存可能
保存した検索条件
※検索条件は、レイアウトごとに表示されます



ファイルへの組み込み方法
例:
「personal_infomation.fmp12」と言う架空の住所録ファイルに「SearchRequestMaker」を組み込みます
-----
「personal_infomation.fmp12」(検索対象ファイル)を開き
ファイル - 管理 - 外部データソース に「SearchRequestMaker」を追加
-----
-----
「SearchRequestMaker.fmp12」を開き
スクリプトフォルダ:SearchRequestMaker をコピー

-----
「personal_infomation.fmp12」(検索対象ファイル)に貼り付け

ボタンを設置
「SearchRequestMaker.fmp12」を開き、レイアウトモードで右下のボタンをコピー

「personal_infomation.fmp12」(検索対象ファイル)のレイアウトに貼り付け
ボタンを設定
「SearchRequestMaker.fmp12」のスクリプト:Receive_Card(FileName,LayoutName)を指定
引数:Get ( ファイル名 ) & ¶ &Get ( レイアウト名 )

-----
ファイル→セキュリティー
URLによるFileMakerスクリプトの実行を許可 にチェック



以上で組み込みは完了です

ファイル「SearchRequestMaker.fmp12」1つで複数のファイルの検索条件を保存できます
-----