LoginSignup
2
0
お題は不問!Qiita Engineer Festa 2023で記事投稿!

Filemakerで作ったzoom予約機能の認証方式を変更したお話

Last updated at Posted at 2023-06-19

はじめに

以前、「Filemakerでzoom予約機能を作ったお話」という記事を書き、これまで順調に・快適にFilemakerでzoom予約機能を使っていたのですが、さぁ今年もzoomのAPI認証に必要なJWTトークンの更新をしようかな~と作業しようと思ったらなんと・・・!
image.png
zoomのJWTトークン認証方式は、2023年9月1日に廃止されるんですって!?(2023年6月1日に新規作成を停止)知らなかったーーー!

といっても、1年も前に告知されていたことを今更知り、なんなら1年前、当時のCTOからお知らせまでもらっていたのにそれにも気が付かなかったという、完全に私の落ち度しかない話です・・・すみません。

というわけで、急ぎ対応しましたので、記録します。

認証方式の変更

JWTトークンは廃止になるので、Server-to-Server OAuth方式か、OAuth方式に変更してね、ということなので、とりあえず、急いでいるのでServer-to-Serverで試します。

変更前、変更後のイメージ図は、こんな感じです。
image.png

Marketplaceでのアプリ作成

はじめての Zoom API - Server-to-server OAuth編 のQiita記事を参考に進めました。ので、説明は割愛します。

1点だけ、Scopesを選択する画面で、私はzoomのMeetingを作る作業がしたいので、meeting:write:adminの権限がもらえそうな、「View and manage all user meetings」にチェックを入れました。
image.png

Client ID と Client Secret をbase64エンコードする

Marketplaceで取得したClient ID と Client Secretを「:」でつなぎ、base64エンコードしたキーを大事に持っておきます。

echo -n clientID:ClientSecret | base64

Filemakerのzoomミーティング作成APIにひと手間加える

必要なフィールドを3つ追加

  • account_id → Marketplaceで発行されたAccount idをセット
  • base64key → 上のclientID:ClientSecretをbase64エンコードしたキーをセット
  • zoom_prepare_json → zoomに問い合わせをして返ってきたjsonを格納するためのフィールド

必要なスクリプトステップ

URLから挿入
image.png

  • ターゲット:zoom_prepare_jsonフィールド
  • URLを指定:"https://zoom.us/oauth/token?grant_type=account_credentials&account_id=" & [account_id]
  • cURLのオプション:"--request POST --header \"Authorization: Basic " & [base64key] & "\""

このステップを実行すると、zoom_prepare_jsonに、ミーティング作成に必要なaccess_tokenが含まれたjsonが返ってくるので、JSONGetElement関数を使って、access_tokenの値を取り出して、変数にセットします。
image.png

この変数をミーティング作成スクリプトのbearer_tokenにセットしてあげれば、これまで通り、ミーティング作成できるようになります。以前私の書いた記事でいうところのSTEP.3で、cURLのオプションを設定する箇所を、JWTトークンでなく、今回作ったaccess_tokenの値にしてあげればOKです!

スクリプトの全体像

こんな感じです。
image.png

おわりに

急いで認証方式を更新したので、いろいろ説明が雑でしたが、最後まで読んでいただきありがとうございました。zoomのJWTトークン認証廃止を目前に、大きな修正を入れることもなく改修ができてよかったです。Filemakerの「URLから挿入」とJSON成形系の計算式、改めてありがたや!!そして、便利で簡単に使えるzoomの存在もありがたや!!と思いました。

参考にさせていただいた記事

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0