FileMaker 16,17,18 「URLから挿入(cURL)」版はコチラ。2019/12/26
https://qbxxdp.blogspot.com/2019/12/filemaker-google-calendar.html
FileMakerの標準機能だけ!?で、Google Calendar と連携できるか?
Google Calendar API v3対応。
結論:
FileMaker Go 13 > OK!
Mac FileMaker Pro 13 > OK!
Win FileMaker Pro 13 > NG! ->OK
残念ながら、Windowsでは、無理です。(2014/07/31現在)
こちらのプラグインを使う方法で解決します。
追記:2017/02/02
以下を追加でWindowsでもOK。
jQuery.support.cors = true;
「Google Calendar API v3 を利用する準備」は、以下を参照。
http://qbxxdp.blogspot.jp/2014/07/filemakergoogle-calendargoogle-calendar_30.html
「クライアントID」と「クライアントシークレット」が取得できたらFileMakerの作業に入ります。
■アプリの利用許可~承認コードの取得
使用関数:
[URL を開く]
値:
https://accounts.google.com/o/oauth2/auth
?scope=https://www.googleapis.com/auth/calendar
&redirect_uri=urn:ietf:wg:oauth:2.0:oob
&response_type=code
&client_id={クライアントID}
■アクセストークン取得・リフレッシュトークン取得
使用関数:
[URLから挿入]
値:
httpspost://accounts.google.com/o/oauth2/token
?code={取得した承認コード}
&client_id={クライアントID}
&client_secret={クライアントシークレット}
&redirect_uri=urn:ietf:wg:oauth:2.0:oob
&grant_type=authorization_code
■リフレッシュトークン で アクセストークンを再取得
※アクセストークンは、使用期限が1時間なので、再取得が必要になります。
使用関数:
[URLから挿入]
値:
httpspost://accounts.google.com/o/oauth2/token
?client_id={クライアントID}
&client_secret={クライアントシークレット}
&refresh_token={リフレッシュトークン}
&grant_type=refresh_token
■イベント追加
※ココがポイント!Googleカレンダーにイベントを追加するには、データ送信時に アクセストークンをヘッダーに設定する必要があります。
FileMakerの[URLから挿入:httpspost:]では、ヘッダー情報の変更が無理なので使えません。
解決策:jQueryを使用します!
使用関数:
[Web ビューアの設定 : URLへ移動...]
値:
"data:text/html;charset=utf-8," & POST_jQuery::Script
location.href = 'fmp://$/FileName.fmp12?script=script01&$id='+msg.id;
でFileMakerにGoogleカレンダーのイベントIDを取得できます。
サンプルファイル:
https://sites.google.com/site/scriptmakerms/filemaker-faq/filemaker-google-calendar-api-v3
2014年7月31日木曜日
2014年7月30日水曜日
FileMakerからGoogle Calendarへイベント追加。Google Calendar API v3 (2)
FileMakerからGoogle Calendarへイベント追加。Google Calendar API v3使用。
http://qbxxdp.blogspot.jp/2014/07/filemakergoogle-calendargoogle-calendar.html
ニューバージョン(2014.7.29現在)。上記に加え
「承認コード取得時のコピペの省略」
「編集」
「削除」
「カレンダーリストの取得」
の機能を追加。
必要なもの:
FileMaker Pro 11 or 12 or 13
ScriptMakerPS | FileMaker Plugin for Windows
(FileMakerのフィールドに記述した「PowerShell」を実行し、戻り値を取得。)
https://sites.google.com/site/scriptmakerps/
FileMakerからGoogle Calendarへイベント追加。Google Calendar API v3 (1)と同じ内容の所があります。
Google Calendar API v3 を利用する準備。
Google Developers Console にアクセスし、プロジェクトを作成します。
Google Developers Console|https://console.developers.google.com/project
英語表記になっている場合は、Account settings で LANGUAGE を日本語に変更。
[プロジェクトを作成]をクリック。
「My Project」をクリック。
APIと認証
└API
で必要なAPIを有効にします。今回必要なのは、Calendar API のみなので他のAPIは無効にします。
APIと認証
└認証情報
で新しいクライアントIDを作成します。
「アプリケーションの種類」は、「インストールされているアプリケーション」、
「インストールされているアプリケーションの種類」は、「その他」を選択します。
「クライアント ID」 と 「クライアント シークレット」 が必要になtります。
[承認|Code取得(自動)|Refresh Token 取得] をクリック。
Refresh Token は、承認したGoogleアカウントで「アクセス権を取り消す」を実行するまで使用できます。access_token の有効期限は、1時間でそれを過ぎるとRefresh Token を元に再取得されます。
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
追記:2015/12/18
フィールド:Json4Event の計算式でJSONの文字のエスケープが不足しています。
バックスラッシュ(円マーク)、タブ などの文字がある場合、エラーになります。
フィールド:Json4Event の計算式の修正版は、以下になります。
ここから-------------------------- ------------------------------ -----------
Let(
[
ST=GetAsTime ( start.dateTime )
;$ST=Right ( "0" & Hour ( ST ) ; 2 ) & ":" & Right ( "0" & Minute ( ST
) ; 2 ) & ":" & Right ( "0" & Seconds ( ST ) ; 2 )
;ET=GetAsTime ( end.dateTime )
;$ET=Right ( "0" & Hour ( ET ) ; 2 ) & ":" & Right ( "0" & Minute ( ET
) ; 2 ) & ":" & Right ( "0" & Seconds ( ET ) ; 2 )
;$SD=Substitute ( GetAsDate ( start.dateTime ) ; ["/" ; "-"] ; ["." ; "-"] )
;$ED=Substitute ( GetAsDate ( end.dateTime ) ; ["/" ; "-"] ; ["." ; "-"] )
]
;
""
)
&
Substitute ( JsonTemplate::JSON ;
["" ; Substitute ( summary ; ["\\" ; "\\\\"] ; ["\"" ;
"\\\""]; [Char ( 9 ); "\t"]; ["¶" ; ""] ) ] ;
["" ; Substitute ( description ; ["\\" ; "\\\\"] ; ["\""
; "\\\""]; [Char ( 9 ); "\t"]; ["¶" ; "\r\n"] ) ] ;
["" ; Substitute ( location ; ["\\" ; "\\\\"] ; ["\"" ;
"\\\""]; [Char ( 9 ); "\t"]; ["¶" ; ""] ) ] ;
["" ; $SD & "T" & $ST & "+09:00" ] ;
["" ; $ED & "T" & $ET & "+09:00" ]
)
ここまで-------------------------- ------------------------------ -----------
http://qbxxdp.blogspot.jp/2014/07/filemakergoogle-calendargoogle-calendar.html
ニューバージョン(2014.7.29現在)。上記に加え
「承認コード取得時のコピペの省略」
「編集」
「削除」
「カレンダーリストの取得」
の機能を追加。
必要なもの:
FileMaker Pro 11 or 12 or 13
ScriptMakerPS | FileMaker Plugin for Windows
(FileMakerのフィールドに記述した「PowerShell」を実行し、戻り値を取得。)
https://sites.google.com/site/scriptmakerps/
FileMakerからGoogle Calendarへイベント追加。Google Calendar API v3 (1)と同じ内容の所があります。
Google Calendar API v3 を利用する準備。
Google Developers Console にアクセスし、プロジェクトを作成します。
Google Developers Console|https://console.developers.google.com/project
英語表記になっている場合は、Account settings で LANGUAGE を日本語に変更。
プロジェクト をクリックし、新しいプロジェクトを作成します。
私のGoogleアカウントの場合、すでに API Project と言うのがありましたが、別に一つ作成します。
ここでは、プロジェクト名を「My Project」として進めます。
※プロジェクト名は、プロジェクト -> プロジェクト名 -> 課金と設定 で変更可能です。
APIと認証
└API
で必要なAPIを有効にします。今回必要なのは、Calendar API のみなので他のAPIは無効にします。
APIと認証
└認証情報
で新しいクライアントIDを作成します。
「アプリケーションの種類」は、「インストールされているアプリケーション」、
「インストールされているアプリケーションの種類」は、「その他」を選択します。
「クライアント ID」 と 「クライアント シークレット」 が必要になtります。
ここからFileMakerの設定。
以下より「GCalendar_v3.fp7」をダウンロード。FMP 12 または、13の場合は、変換してください。
「ScriptMakerPS」が必要です。設定してください。(2014/7/15 現在、BETA版無料)
【新機能】
「GCalendar_v3.fp7」を開き、Google Developers Console で作成したプロジェクトの「クライアントID」と「クライアント シークレット」を設定。[承認|Code取得(自動)|Refresh Token 取得] をクリック。
ブラウザで許可リクエストのページが開きます。
[承認する]をクリック。
自動でgOauthCodeフィールドに認証コードが入り、Refresh Token と access_token が取得されます。
[InsertEvent]をクリックし、Json_Resultフィールドにイベントデータが戻ればGoogle Calendarへのイベント登録に成功しています。
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
追記:2015/12/18
フィールド:Json4Event の計算式でJSONの文字のエスケープが不足しています。
バックスラッシュ(円マーク)、タブ などの文字がある場合、エラーになります。
フィールド:Json4Event の計算式の修正版は、以下になります。
ここから--------------------------
Let(
[
ST=GetAsTime ( start.dateTime )
;$ST=Right ( "0" & Hour ( ST ) ; 2 ) & ":" & Right ( "0" & Minute ( ST
) ; 2 ) & ":" & Right ( "0" & Seconds ( ST ) ; 2 )
;ET=GetAsTime ( end.dateTime )
;$ET=Right ( "0" & Hour ( ET ) ; 2 ) & ":" & Right ( "0" & Minute ( ET
) ; 2 ) & ":" & Right ( "0" & Seconds ( ET ) ; 2 )
;$SD=Substitute ( GetAsDate ( start.dateTime ) ; ["/" ; "-"] ; ["." ; "-"] )
;$ED=Substitute ( GetAsDate ( end.dateTime ) ; ["/" ; "-"] ; ["." ; "-"] )
]
;
""
)
&
Substitute ( JsonTemplate::JSON ;
["
"\\\""]; [Char ( 9 ); "\t"]; ["¶" ; ""] ) ] ;
["
; "\\\""]; [Char ( 9 ); "\t"]; ["¶" ; "\r\n"] ) ] ;
["
"\\\""]; [Char ( 9 ); "\t"]; ["¶" ; ""] ) ] ;
["
["
)
ここまで--------------------------
2014年7月15日火曜日
FileMakerからGoogle Calendarへイベント追加。Google Calendar API v3 (1)
2014.7.30|FileMakerからGoogle Calendarへイベント追加。Google Calendar API v3 (2) を公開しました。
FileMakerからGoogle Calendarへイベント追加。Google Calendar API v3使用。
必要なもの:
FileMaker Pro 11,12,13
ScriptMakerPS | FileMaker Plugin for Windows
(FileMakerのフィールドに記述した「PowerShell」を実行し、戻り値を取得。)
https://sites.google.com/site/scriptmakerps/
Google Calendar API v3 を利用する準備。
Google Developers Console にアクセスし、プロジェクトを作成します。
Google Developers Console|https://console.developers.google.com/project
英語表記になっている場合は、Account settings で LANGUAGE を日本語に変更。
[プロジェクトを作成]をクリック。
「My Project」をクリック。
APIと認証
└API
で必要なAPIを有効にします。今回必要なのは、Calendar API のみなので他のAPIは無効にします。
APIと認証
└認証情報
で新しいクライアントIDを作成します。
「アプリケーションの種類」は、「インストールされているアプリケーション」、
「インストールされているアプリケーションの種類」は、「その他」を選択します。
「クライアント ID」 と 「クライアント シークレット」 が必要になtります。
「GCalendar_v3.fp7」を開き、Google Developers Console で作成したプロジェクトの「クライアントID」と「クライアント シークレット」を設定。
[承認|Code取得] をクリック。
Refresh Token は、承認したGoogleアカウントで「アクセス権を取り消す」を実行するまで使用できます。access_token の有効期限は、1時間でそれを過ぎるとRefresh Token を元に再取得されます。
FileMakerからGoogle Calendarへイベント追加。Google Calendar API v3使用。
必要なもの:
FileMaker Pro 11,12,13
ScriptMakerPS | FileMaker Plugin for Windows
(FileMakerのフィールドに記述した「PowerShell」を実行し、戻り値を取得。)
https://sites.google.com/site/scriptmakerps/
Google Calendar API v3 を利用する準備。
Google Developers Console にアクセスし、プロジェクトを作成します。
Google Developers Console|https://console.developers.google.com/project
英語表記になっている場合は、Account settings で LANGUAGE を日本語に変更。
プロジェクト をクリックし、新しいプロジェクトを作成します。
私のGoogleアカウントの場合、すでに API Project と言うのがありましたが、別に一つ作成します。
ここでは、プロジェクト名を「My Project」として進めます。
※プロジェクト名は、プロジェクト -> プロジェクト名 -> 課金と設定 で変更可能です。
APIと認証
└API
で必要なAPIを有効にします。今回必要なのは、Calendar API のみなので他のAPIは無効にします。
APIと認証
└認証情報
で新しいクライアントIDを作成します。
「アプリケーションの種類」は、「インストールされているアプリケーション」、
「インストールされているアプリケーションの種類」は、「その他」を選択します。
「クライアント ID」 と 「クライアント シークレット」 が必要になtります。
ここからFileMakerの設定。
以下より「GCalendar_v3.fp7」をダウンロード。FMP 12 または、13の場合は、変換してください。
「ScriptMakerPS」が必要です。設定してください。(2014/7/15 現在、BETA版無料)
[承認|Code取得] をクリック。
ブラウザで許可リクエストのページが開きます。
[承認する]をクリック。
コードをコピーし、FileMaker 「GCalendar_v3.fp7」に設定します。
gOauthCodeフィールドに上記で取得したコードを貼り付けます。
[Refresh Token 取得] をクリックすると Refresh Token と access_token が取得されます。
[InsertEvent]をクリックし、Json_Resultフィールドにイベントデータが戻ればGoogle Calendarへのイベント登録に成功しています。
登録:
投稿 (Atom)