Teruhiro Komaki's Diary (Archive)

タグ:FileMaker(4)

author
Teruhiro Komaki komaki.dev
2024年 03月 21日 木曜日
10時00分

FileMaker Data API を実行ステップや、FileMaker Data APIの戻り値の日付フォーマットについて

FileMaker Data API で、ID による単一レコードの取得、レコードの取得、およびレコード検索のエンドポイントに FileMaker Data API によって返される日付およびタイムスタンプフィールドの形式を制御するオプションの dateformats 引数が含まれるようになりました: 米国は 0、ファイルロケールは 1、ISO8601 は 2 です。
指定されていない場合、デフォルト値は 0 です。

Claris FileMaker Server 19.6.1 リリースノート

For FileMaker Data API, the Get a Single Record by ID, Get Records, and Find Records endpoints now include the optional dateformats parameter, which controls the format of date and timestamp fields returned by FileMaker Data API: 0 for US, 1 for file locale, or 2 for ISO8601.
If not specified, the default value is 0.

Claris FileMaker Server 19.6.1 Release Notes

dateformats = 0 の場合は、米国

{
  "layouts": "blank",
  "query": [
    {
      "日付": "03/01/2024"
    }
  ],
  "dateformats": 0 <- 米国
}
{
  "response": {
    "dataInfo": {
      "database": "blank",
      "layout": "blank",
      "table": "blank",
      "totalRecordCount": 1,
      "foundCount": 1,
      "returnedCount": 1
    },
    "data": [
      {
        "fieldData": {
          "タイムスタンプ": "03/01/2024 09:10:20", <- 米国
          "日付": "03/01/2024" <- 米国
        },
        "portalData": {},
        "recordId": "1",
        "modId": "4"
      }
    ]
  },
  "messages": [
    {
      "code": "0",
      "message": "OK"
    }
  ]
}

dateformats = 1 の場合は、ファイルロケール

{
  "layouts": "blank",
  "query": [
    {
      "日付": "03/01/2024"
    }
  ],
  "dateformats": 1 <- ファイルロケール
}
{
  "response": {
    "dataInfo": {
      "database": "blank",
      "layout": "blank",
      "table": "blank",
      "totalRecordCount": 1,
      "foundCount": 1,
      "returnedCount": 1
    },
    "data": [
      {
        "fieldData": {
          "タイムスタンプ": "2024/03/01 09:10:20", <- ファイルロケール
          "日付": "2024/03/01" <- ファイルロケール
        },
        "portalData": {},
        "recordId": "1",
        "modId": "4"
      }
    ]
  },
  "messages": [
    {
      "code": "0",
      "message": "OK"
    }
  ]
}

dateformats = 2 の場合は、ISO8601

{
  "layouts": "blank",
  "query": [
    {
      "日付": "03/01/2024"
    }
  ],
  "dateformats": 2 <- ISO8601
}
{
  "response": {
    "dataInfo": {
      "database": "blank",
      "layout": "blank",
      "table": "blank",
      "totalRecordCount": 1,
      "foundCount": 1,
      "returnedCount": 1
    },
    "data": [
      {
        "fieldData": {
          "タイムスタンプ": "2024-03-01T09:10:20", <- ISO8601
          "日付": "2024-03-01" <- ISO8601
        },
        "portalData": {},
        "recordId": "1",
        "modId": "4"
      }
    ]
  },
  "messages": [
    {
      "code": "0",
      "message": "OK"
    }
  ]
}
author
Teruhiro Komaki komaki.dev
2024年 03月 15日 金曜日
15時50分

Googleのリフレッシュトークンの有効期限について

#FileMakerから、#Google#APIを利用する際に、#リフレッシュトークン(更新トークン)をFileMakerの内部で管理します。

その際に、お客様から「#リフレッシュトークンは、更新する必要がなく、ずっと使えるの?」と良く質問を頂きます。

ということで、リンクを張っておきます。

リフレッシュトークンの有効期限について

付与された更新トークンが機能しなくなる可能性を想定したコードを記述する必要があります。更新トークンが機能しなくなる理由は、次のいずれかです。

  • ユーザーがアプリのアクセス権を取り消した。
  • 更新トークンが 6 か月間使用されていません。
  • ユーザーがパスワードを変更し、更新トークンに Gmail スコープが含まれている。
  • ユーザーアカウントが付与されている(有効な)更新トークンの最大数を超えています。
  • 管理者がアプリのスコープでリクエストされたサービスのいずれかを制限付きに設定した場合(エラーは admin_policy_enforced)。
OAuth 2.0 を使用して Google API にアクセスする | Authorization | Google for Developers
スクリーンショット
スクリーンショット

ということで、基本的には一度取得した#リフレッシュトークンは、無効化されることがないという認識です。

author
Teruhiro Komaki komaki.dev
2024年 03月 14日 木曜日
19時00分

Data Matrixに対応している、jsQRを使ってブラウザでQRコードを読み取る

16時00分に、投稿をした際には#jsQRを使ってみたのですが、#QRコードに追加して、#Data Matrixも読めるようにしたいなと思いました。

2024年03月13日 16時00分 | 小巻の日記

探してみると、以下の#ZXingというライブラリが見つかりました。

zxing-js/library: Multi-format 1D/2D barcode image processing library, usable in JavaScript ecosystem.

以下のデモサイトにアクセスすると、カメラを使ってテストできます。

ZXing TypeScript | Decoding from camera stream

#Data Matrixのサンプルで確認しましたら、無事読み込めました。

スクリーンショット
スクリーンショット

こちらのライブラリを活用すると、#FileMaker Goなどのクライアントが不要になりそうな予感がします…

ZXing TypeScript | Demo & Examples

author
Teruhiro Komaki komaki.dev
2024年 03月 14日 木曜日
17時00分

お客様のFileMaker Cloud環境で、スケジュールを設定する際には注意

お客様が、#FileMaker Cloud環境で#FileMakerを利用している場合において、少しハマったことがあったので、メモしておきます。

#FileMaker Cloudは、オンプレミスの#FileMaker Serverと違って、Admin Consoleにログインする際にも、ファイルを開く際にも、Claris IDでログインする必要があります。

以下のような手順をすると、どうなるか想像してみてください。

#FileMaker CloudのAdmin Consoleで設定したスケジュールが失敗する手順

  1. お客様のClaris Customer Consoleに、開発者として、一時的にユーザーAを追加してもらう。
  2. ユーザーAとして、お客様のAdmin Consoleにログインし、スケジュール設定を追加する。
  3. スケジュールが正常に動いていることを確認する。
  4. お客様のClaris Customer Consoleから、ユーザーAを削除する。
  5. スケジュールは、作成者であるユーザーAとして、実行される。
  6. ユーザーAは、お客様のClaris Customer Consoleにはいないため、スケジュールが失敗する。

#FileMaker Cloudの場合、上記のようなことが起こります…

そのため、お客様のアカウントにて、スケジュールを作って頂くようにしましょう。