fmOAuth v0.0.3 をリリースしました

こんにちは。
株式会社フルーデンスの小巻です。

fmOAuth v0.0.3 をリリースしました。

修正点については、リリースノートをご確認ください。

fmOAuthのクライアントIDを更新した関係上 v0.0.2 以前のサンプルファイルで「fmOAuthを利用する」を選択すると、エラーになります。

クライアンIDの更新についても、S3などにファイルをおいといて、常に最新ファイルをダウンロードすれば、動的に管理できるのですが…
今回は、そこまで修正はしていません。

また、「fmoauth.fmp12をサーバーにホストすると、うまく連携ができない。」というお問い合わせを頂きましたので、確認しました。
私の環境では、連携できることが確認できました。

次回のバージョンアップでは、Gmail APIをすべてカバーしたいと思っています。
HTMLメールも送信できるようになります。

サンプルファイルを見ていただき、スクリプトなど不明点があればご質問ください。

連携してほしいAPIなどあれば、ご要望いただければと思います。

fmOAuthを利用して頂いた開発者の方へ

いつも利用して頂きありがとうございます。
できれば、感想(良い点も、悪い点も、遠慮なく。)を頂けますと幸いです。

どうぞよろしくお願いします。

ターミナルから FileMaker 17 Data API を試してみた

こんにちは。
株式会社フルーデンスの小巻です。

先日、FileMaker 17 がリリースされまして、界隈は大変盛り上がっていますね。
多くのデベロッパーさんが、17に関連する記事を書いています。
そこで、今回は情報の少なめな FileMaker 17 Data API について、書いてみます。

タイトルの通り、ターミナルを使いますが、コピペで使えるようにしていますので、気軽に挑戦してみてください。

まずは、ドキュメントの整理を。

FileMaker Data API について

Data API は、16から使えましたが、試用期間でした。
試用期間も終わり 17 で、正式にリリースされました。

時間がある方は、ヘルプを見てください。

FileMaker 16 Data API
https://fmhelp.filemaker.com/docs/16/ja/restapi/

FileMaker 17 Data API
https://fmhelp.filemaker.com/docs/17/ja/dataapi/

FileMaker Data API Reference について

FileMaker Server をインストールしたら、以下のURLでリファレンスを見ることができます。

https://your-domain.com/fmi/data/apidoc/

ヘルプを見ればちゃんと書かれていますので、見ましょう。

FileMaker Server をインストールすると FileMaker Data API Reference ファイルがインストールされます。このリファレンスファイルには、FileMaker Data API でサポートされるすべての呼び出しに関する詳細情報が含まれています。

メモ: FileMaker Data API Reference を表示するには Admin Console で FileMaker Data API アクセスが有効に設定されていることを確認します。FileMaker Server ヘルプを参照してください。

  • マスタマシンのブラウザウインドウでこのリファレンスを表示するには、次の URL を入力します。https://localhost/fmi/data/apidoc/
  • リモートマシンのブラウザウインドウでこのリファレンスを表示するには、次の URL を入力します。https://< ホスト>/fmi/data/apidoc/< ホスト> は FileMaker Server が実行されているマスタマシンの IP アドレスまたはホスト名です。
  • Windows サーバーの場合、リファレンスファイルは次のフォルダ内にあります。[ドライブ]:¥Program Files¥FileMaker¥FileMaker Server¥Documentation¥Data API Documentation[ドライブ] は FileMaker Server 展開が存在するドライブです。Windows 上のデフォルト以外の場所にインストールした場合、次のようにデフォルトのインストールパスの先頭部分がインストール場所に置き換わります。[ドライブ]:[インストール場所]¥FileMaker¥FileMaker Server¥Documentation¥Data API Documentation
  • macOS サーバーの場合、リファレンスファイルは次のフォルダ内にあります。/ライブラリ/FileMaker Server/Documentation/Data API Documentation

メモ

リファレンスファイルでは先頭にコロン (:) の付いたキーワードを使用して URL 内の変数を示しています。例: :database
このガイドでは斜体フォントを使用して URL 内の変数を示しています。例: database-name

環境

macOS High Sierra (10.13.4)
curl 7.54.0
jq 1.5 (brewでインストールしてください!)

windowsの方は、cygwinなどでやってみてください。
時間があれば、検証してみます。

任意のレイアウトのレコードを取得する

Login や Get Records をまとめて書きます。

続きを読む →

FileMakerからGmail APIを使って「HTMLメール」と「添付ファイル」の送信を実装してみました

こんにちは。
株式会社フルーデンスの小巻です。

Vimを使い始めたということもありますが、しばらく前から、できるかぎりターミナルで生活するようにしています。
そのおかげもあり、ターミナルをメインとした生活にも慣れてきまして、不要になったGUIアプリを少しづつ削除しています。

最初は大変かもしれませんが、慣れると本当に快適ですので、みなさんにもオススメしますよ!
まずは brew でのパッケージ管理を慣れてもらいつつ tmux や screen などを…

余裕があれば「おすすめするコマンド!」などのブログも書きますので!

fmOAuthの開発をしておりまして、Gmail APIでできることを、ほとんどカバーしたいと思いました。

とういことで HTMLメールの送信ファイルを添付してのメール送信 などを実装してみました。

FileMakerから Gmail API を使って「HTMLメール」と「添付ファイル」の送信をやってみた

fmOAuthの次のバージョンには実装できると思います!
また、ここらへんの機能を使い別のプロダクトへの展開も考えております。
(まだ、わかりませんが…)

あとがき

fmOAuthは「URLから挿入」のみで実装しておりますので、プラグインなどは利用していません。
APIって本当に素晴らしいですね!

API連携のことでお困りでしたら、ぜひともお問い合わせください!

また、昨年のFileMakerカンファレンスに登壇してから、スポットで技術的なコンサルティングの依頼を受けることが増えてきました。
お客様より「オンラインコンサルティングをチケット化して欲しい。」との声を頂いております。

…ということで、オンラインコンサルティングを気軽に依頼できるようにECサイトにてチケットを販売できればと考えております。
引き続きよろしくお願いいたしますm(_ _)m

fmSimpleCalendar v0.0.0 がリリースできそうです

こんにちは。
株式会社フルーデンスの小巻です。

以前からお知らせしていましたが、タイトルの通り fmSimpleCalendar というソリューションを開発しています。
みなさまご存知の FullCalendar を使ったソリューションです。

いよいよ形になってきましたのでリリースできそうです。

リリースにあたり色々と考えましたが、ECサイトにて販売したいと考えています。
金額は未定です…

かりに、ソリューションを購入して頂いても、ご自身のカスタムAppに組み込めないと意味がないので、基本的に組み込みをするサポートする方向で考えています。
もちろん「俺はサポートなんぞ不要だ」という方もいるかもしれませんが…
そういう方とは個別対応させて頂きたいと思います。

リリース直後だからといって割引をして販売することなどは考えていませんが、オンラインコンサルティングなどの特典?などを考えています。

fmSimpleCalendarの紹介

ドラッグ&ドロップ

表示切り替え

続きを読む →

fmSimpleCalendarを開発しています

こんにちは。
株式会社フルーデンスの小巻です。

タイトルの通りですが fmSimpleCalendar というソリューションを開発しています。

みなさまご存知の FullCalendar を使ったソリューションです。

こんな感じのやつです。

developing-fmsimplecalendar1

名前の通りですが、複雑なことをせずに、ファイルをみれば簡単に理解できるようにしようと思っています。
一般的な開発者の方がカスタマイズして、自分のカスタムAppに組み込むことが目的ですからね。

海外のデベロッパーからは、カレンダー系のソリューションは出てるのに、日本のFBAはあまり出してないみたいですね。

なんででしょうか…

ということで絶賛開発中ですので、しばらくしたらリリースします。

話はかわりますが、FM中部のユーザーミーティングに行こうか迷っています。
せっかく参加するなら、なにかしらのネタを発表したいと思っているのですが…

fmOAuth v0.0.2 をリリースしました

こんにちは。
株式会社フルーデンスの小巻です。

fmOAuth v0.0.2 をリリースしました。

修正点については、リリースノートをご確認ください。

個人的には、任意のクライアントを使いAPIを利用できるようになった点が大きいと思います!

ご自身のアカウントで Google Cloud Platform にログインしていただき、APIを利用するためのクライアントを作成し、作成したクライアント情報をスクリプト引数で渡してもらえれば利用できるようにしました。

ほかには、Gmailをダウンロードできるようになりました。
サーバーサイドで実行していただければ、Gmailを同期できると思います。
プラグインなどを利用せずに URLから挿入 のみで、実装していますので組み込むのも簡単かと思います。

サンプルファイルを見ていただき、スクリプトなど不明点があればご質問ください!

話は変わりますが…

現在は、FileMakerのWebビューアで利用できる FullCalendar を簡易的に組み込めるテンプレートファイルを作成しています。

Webストアなどで販売してみたいので、安いかもしれませんが、有料で販売するかもしれません!

その際は、是非ともご購入いただければと思います m(_ _)m

連携してほしいAPIなどあれば、ご要望いただければと思います。

FileMaker のコードを CotEditor で シンタックスハイライトする

こんにちは。
株式会社フルーデンスの小巻です。

昨年の終わり頃から、Vimを使いはじめまして、エディター周りを整理しているところです。

.vimrcで矢印キーを無効にして、しばらく使っていると、すこしづつ慣れてくるんですね。
繰り返し作業をすると、無意識に hjkl を押すことができるんですよね。人間って本当に不思議です。
なによりもターミナル内で作業できるところがいいですね!

もしかしたら、気が変わるかもしれませんが、しばらく Vim を使ってみようと思います。

ダウンロード

cloneとか、ダウンロードとか、してください。

CotEditor

https://github.com/frudens/filemaker-syntax-coteditor

Sublime Text

https://github.com/frudens/filemaker-syntax

TextMate

https://github.com/frudens/filemaker-syntax-textmate

CotEditor

以前にも FileMaker のコードを Sublime Text 3 で シンタックスハイライトする という記事を書きました。

今回は CotEditor のシンタックス用のファイルを作成したので、興味があれば使ってください。

シンタックス

こんな感じになりました。
CotEditorのハイライトはGUIで定義できるようになっていますので、すごく親切です。

coteditor-filemaker-syntax-highlight1

続きを読む →

FileMakerのWebビューアで使うカレンダーを調べてみた

こんにちは。
株式会社フルーデンスの小巻です。

fmOAuthでGoogleカレンダーの連携をしていて、せっかくならGoogleカレンダーに近いUIで実装したい、と思うようになりました。

そこで、Webビューアでカレンダーを表示する際に、良さそうなライブラリーなどを調べたので、紹介したいと思います。

利用する際には、ライセンスなど確認してください。

FullCalendar

https://fullcalendar.io
https://github.com/fullcalendar/fullcalendar

filemaker-webviewer-calendar-library1

FileMakerで、カレンダーといえば FullCalendar というくらい、定番だと思います。
海外では、FullCalendarを組み込んだファイルを販売している会社があるので、相性がよいのだと思います。

実際につかったことがありますが、使いやすく日本語の情報も多いので、少し調べれば比較的簡単に実装できると思います。
ドキュメントがわかりやすくまとまっているので、読めば理解できると思います。

ライセンス

MIT License

Wikipediaより
https://ja.wikipedia.org/wiki/MIT_License

要約すると、MIT Licenseとは次のようなライセンスである。
このソフトウェアを誰でも無償で無制限に扱って良い。ただし、著作権表示および本許諾表示をソフトウェアのすべての複製または重要な部分に記載しなければならない。
作者または著作権者は、ソフトウェアに関してなんら責任を負わない。

FullCalendar Scheduler

https://fullcalendar.io/scheduler/

filemaker-webviewer-calendar-library7

先ほど紹介した FullCalendar のアドオンです。

ライセンスが、FullCalendarと違うため、利用の際は確認してください。

ライセンス

https://fullcalendar.io/scheduler/license/

続きを読む →

fmOAuth(0.0.2)の機能を使ってFileMakerとGoogleカレンダーの連携や、Gmailをダウンロードしてみた

こんにちは。
株式会社フルーデンスの小巻です。

先日、2つの簡単な記録を書きました。

fmOAuth(0.0.2)に、GmailのAPI(ダウンロードと送信)を実装しています

fmOAuth(0.0.2)に、OAuth認証(Google)に任意のアプリを利用できる機能を実装しています

伝わらないと思い、あたらめて動きを動画にしてみました。
動画をみていただけると、どんなことができるかわかるかと思います。

今回は、サンプルファイルを大きく修正していますので、リリース後にダウンロードしていただければと思います。

引き続き、開発していきます!

このあとは、Webビューアを使って、カレンダーを実装したいと思います。

HHKBのキーボードブリッジを購入しました

こんにちは。
株式会社フルーデンスの小巻です。

世の中の多くの開発者は、一日の大半をキーボードと一緒に過ごしていると思います。

デスクやマシン、ディスプレイなどの開発環境に、こだわりをもっている方も多いと思います。

私も開発環境には、かなりのこだわりをもっています。

生産性を高めるために、自然と追求するようになりました。

HHBKのキーボードを購入

私は、普段HHKB(Happy Hacking Keyboard Professional2 Type-S 英語配列)を使っています。

Macbook Proの内蔵キーボードでもよいのですが、やはり使い心地が良くて、HHKBを買ってからはずっとHHKBを使っています。

HHKBとの出会いは、また今度書きますが…

今回は、HHKBをMacbook Proの上にのせるためのキーボードブリッジを購入しましたので、どんな感じになるか写真を撮ってみました。

購入したキーボードブリッジ

こちらを購入しました。

http://www.pfu.fujitsu.com/direct/hhkb/hhkb-option/detail_pz-kbbrg.html

HHKBのキーボードブリッジ装着

装着しました!

入れ物

hhkb-keyboard-bridge-01

Macbook Pro 13

hhkb-keyboard-bridge-02

続きを読む →

API連携のテストには “テキストを挿入” がおすすめ

こんにちは。
株式会社フルーデンスの小巻です。

FileMaker 16 より URL から挿入 が大きく改良されました。
cURLオプション を使えるようになった点がすごく大きいですね。

知らない方も多いようですが、バージョン15でも httpspost などは使えてたんですよね。

https://www.filemaker.com/help/15/fmp/ja/#page/FMP_Help%2Finsert-from-url.html

[URL から挿入] は、http、https、httppost、httpspost、ftp、ftps、および file プロトコルをサポートします。FileMaker Pro は、URL によってターゲットフィールドに指定されたリソースをダウンロードします。

ただ、外部サービスとの連携をする際には、デフォルトの機能ではできないことが多く、私は BaseElementsプラグイン を利用して、cURLコマンドを実行していました。

https://baseelementsplugin.zendesk.com/hc/en-us/articles/203843738-BE-HTTP-POST

BE_HTTP_POST ( url ; parameters { ; username ; password } )

Does a http POST function and returns the results. This uses the curl library so output will be similar to that. This is used in conjunction with the BE_HTTP_Set_Custom_Header function to set custom headers in advance and the BE_HTTP_Response_Code and BE_HTTP_Response_Headers functions to get the result values after the POST is complete.

話を戻しまして。

API連携をする際に、cURLオプションに色々と記述するわけですが、FileMakerの計算式で書くには、少ししんどいケースがあります。

続きを読む →

fmOAuth(0.0.2)に、OAuth認証(Google)に任意のアプリを利用できる機能を実装しています

こんにちは。
株式会社フルーデンスの小巻旭洋です。

タイトルからは少し分かりづらいかもしれませんが、同意画面を fmOAuth ではなく、任意のアプリに置き換えることができるように実装しています。

ということで、自分のGoogleアカウントでコンソールにログインし、アプリを作成してもらい、引数を渡していただければ利用できます。

自分のアプリを作成する方法は、別で記事を書きます。

fmOAuthの同意画面

デフォルトでは、以下のような同意画面です。

fmoauth-002-google-oauth-application1

任意のアプリの同意画面

コンソールでアプリを作成し、アプリの情報をスクリプト引数で渡すと、以下のような同意画面になります。

fmoauth-002-google-oauth-application2

スクリプト(画像)

fmoauth-002-google-oauth-application3

スクリプト(コード)

# 
# ──────────────────── Parameter
# 
# case fmOAuth
# 
If [ True // fmOAuth ] 
	テキストを挿入 [ 選択 ; $scopeList ; 「https://www.googleapis.com/auth/calendar https://www.googleapis.com/auth/drive https://mail.google.com/」 ] 
	変数を設定 [ $param ; 値: JSONSetElement (  "{}" ;  [ "scopeList" ; $scopeList ; JSONString ] ) ] 
End If
# 
# case Your Google App
# 
If [ False // Set CustomFunction from Your Google App Information ] 
	変数を設定 [ $appId ; 値: z_yourGoogleAppId ] 
	変数を設定 [ $secret ; 値: z_yourGoogleAppSecret ] 
	変数を設定 [ $redirect ; 値: z_yourGoogleAppRedirect ] 
	テキストを挿入 [ 選択 ; $scopeList ; 「https://www.googleapis.com/auth/calendar https://www.googleapis.com/auth/drive https://mail.google.com/」 ] 
	変数を設定 [ $param ; 値: JSONSetElement (  "{}" ;  [ "appId" ; $appId ; JSONString ] ;  [ "secret" ; $secret ; JSONString ] ;  [ "redirect" ; $redirect ; JSONString ] ;  [ "scopeList" ; $scopeList ; JSONString ] ) ] 
End If
# 
# ──────────────────── Perform Script
# 
スクリプト実行 [ 「0307.Get Refresh Token Google ( appId ; secret ; redirect ; scopeList )」 , ファイル: 「fmoauth」 ; 引数: $param ]
# 
# ──────────────────── Response Data
# 
If [ IsEmpty ( FilterValues ( JSONListKeys ( Get ( スクリプトの結果 ) ; "" ) ; "refresh_token" ) ) ] 
	# error
	フィールド設定 [ USER::googleRefreshToken ; Get ( スクリプトの結果 ) ] 
Else
	# ok
	フィールド設定 [ USER::googleRefreshToken ; JSONGetElement ( Get ( スクリプトの結果 ) ; "refresh_token" ) ] 
End If
#