ZAC と連携する
Synqlet と ZAC を OAuth で連携する手順です。ZAC 側の準備 → Synqlet 側の認証情報登録の順に進めます。
1. ZAC で連携用のユーザーを作成し、権限を付与する
Section titled “1. ZAC で連携用のユーザーを作成し、権限を付与する”- ZAC の マスタ > 社員マスタ から、Synqlet 連携用のユーザーを作成します。
- ZAC の マスタ > ライセンスマスタ から、そのユーザーに必要なライセンスを付与します。
- ZAC の マスタ > 権限マスタ から、そのユーザーに次の権限を付与します。
- 必要な操作の権限
- 必要な操作の社外接続権限

2. ZAC で APIアプリケーションマスタを登録する
Section titled “2. ZAC で APIアプリケーションマスタを登録する”ZAC の APIアプリケーションマスタ画面を開き、次の内容で APIアプリケーションを新規追加します。

| 項目 | 設定値 |
|---|---|
| アプリケーション名 | 任意(例: synqlet) |
| アプリケーションID | 任意(例: synqlet)。あとで Synqlet の Client ID に入力します |
| 新しいパスワード | 任意のパスワードを決めて入力します。あとで Synqlet の Client Secret に入力します |
| 認証フロー | Authorization code flow |
| リダイレクトURI | https://app.synqlet.com/oauth/authorized |
| アクセストークンの有効期限 | 86400(24時間)。スクリプトの記述方法と実行時間によりますが、24 時間を指定します |
| IDトークンの有効期限 | 300(既定値のままで充分です) |
| AuthCodeの有効期限 | 300(既定値のままで充分です) |
| リフレッシュトークンの有効期限 | 38880000(450 日。ZAC の最大値) |
3. ZAC で、Synqlet 連携用のユーザーにログインし直す
Section titled “3. ZAC で、Synqlet 連携用のユーザーにログインし直す”ZAC からログアウトし、手順 1 で作成した Synqlet 連携用のユーザーでログインし直します。
このあとの手順 4 で Synqlet から ZAC の認可画面を開くため、ここでログインしているユーザーが、そのまま連携に使われるユーザーになります。
4. Synqlet で認証情報を登録する
Section titled “4. Synqlet で認証情報を登録する”Synqlet の認証情報の一覧画面から「認証情報を作成」で、次の内容を入力します。認証情報タイプには ZAC を選びます。


| 項目 | 入力内容 |
|---|---|
| 名前 | 任意(例: zac) |
| 認証情報の鍵 | あらかじめ作成しておいた鍵を選びます → 認証情報の鍵 |


| 項目 | 入力内容 |
|---|---|
| ベースURL | 社外接続の ZAC の画面 URL(例: https://secure.zac.ai/oro/b/daily_report)。社内にランナーを設置して接続できる場合は、社内接続の URL を指定します |
| Client ID | 手順 2 で入力したアプリケーションID |
| Client Secret | 手順 2 で入力したパスワード |
| scope | openid offline_access https://jp.oro.com/ZAC/auth/webapi https://jp.oro.com/ZAC/auth/gateway_access(ZAC タイプを選ぶと既定で入力されています)。社内接続の場合は https://jp.oro.com/ZAC/auth/gateway_access は不要です |
| 直接ブラウザからトークンを取得して暗号化する | チェックを付けたままにします |
| PKCE (Proof Key for Code Exchange) | チェックを外したままにします |
作成すると ZAC の認可画面が開きます。許可すると連携が完了します。

5. フローのスクリプトノードで使う
Section titled “5. フローのスクリプトノードで使う”作成した認証情報は、ZAC と連携させるフローのスクリプトノードから利用できます。
import credential from "synqlet:credentials/{認証情報のID}";外部と通信するため、スクリプトノードのセキュリティフラグで「ネットワークアクセス」を許可してください。
await credential() の書き方には注意点があります(変数に入れて使い回さない、リフレッシュの猶予時間を変えられる)。→ スクリプトを書く