◆本記事の位置づけ
【記載内容】
・Copilot Studio × iPaaS(HULFT Square)をREST APIで連携する設定手順
【取り組んだテーマ】
・Copilot Studioから外部ナレッジソースをRAGとして活用し、AIによる回答生成
(Web検索やMicrosoft 365サービス以外のデータ活用)
※クラウドストレージのSandbox環境を用意し、ナレッジソースとしました。
クラウドストレージ-iPaaS-Copilot Studio間は API連携でデータ取得しています。
【この記事は、全6回のうち第3回】
- 1.Copilot Studio と Entra IDで、ユーザー認証情報の取得
- 2.Agent OrchestrationによるQiita投稿
- 3.Copilot×iPaaS の API連携手順
- 4.iPaaS×Box 特定ユーザの参照権限でデータ探索
- 5.Box API解説編
- 6.Copilot Studio RAGの検証結果/LLMモデルによる出力特性比較
【どんな課題を解決したいか?】
Copilot StudioのREST APIクライアント機能が用意する認証方法:
「APIキー」認証 及び「OAuth2.0」認証 以外の認証方式への、具体的な対応方法。
⇒HULFT SquareのREST APIジョブ(Bearer認証)に対応したCopilot Studioの設定概要を記載していきます。
(中間にAWSサービスのAPI GatewayやLambdaを用意することで中継は可能ですが、
直接API連携するための方法になります)
◆本編 : Copilot Studio から HULFT Square のAPIをコールする設定手順
Copilot Studio × HULFT Square API連携 実装ガイド
はじめに
本記事では、Copilot Studio(厳密には異なりますが、Power Automate フロー) から iPaaS である HULFT Square の REST APIジョブを呼び出す手順を紹介します。
PowerPoint 75ページ分の手順をギュッと凝縮しています。画面スクショは割愛し、設定値を中心に記載しているので、画面を見ながら進めれば詰まらないはずです!
全体像
フローは以下の9ステップで構成されています。
◆Copilot Studio エージェントフロー デザイナーの構成例
※最もシンプルな例
手順
1. Copilot Studio にログイン
Copilot Studio にログインし、新しいエージェント フローを開きます。
2. エージェントフロー(デザイナー)に遷移
エージェントの編集画面から エージェント フローのデザイナーに遷移します。
3. フローの作成
Step 1|エージェントがフローを呼び出したとき(トリガー設定)
検索欄で エージェント と入力し、「エージェントがフローを呼び出したとき」 を選択します。
入力パラメータの追加:
- 「+ 入力を追加する」 を押下
- 「テキスト」 を選択
- 以下のように設定
| 項目 | 設定値 |
|---|---|
| キー | requestText |
| バリュー | 変更なし(デフォルト) |
キー名は任意です。今回の例では requestText としています。
用途に応じて変更してください。
Step 2 & 3|変数を初期化する
トリガーの下にある 「+」ボタン を押下し、検索欄で 変数 と検索 → 「変数を初期化する」 を選択します。
変数 A(varAccessToken)
| 項目 | 設定値 |
|---|---|
| 名前 |
varAccessToken(任意) |
| タイプ | 文字列 |
| 値 | 空白 |
変数 B(varRefreshToken)
もう一つ 「変数を初期化する」 を追加し、以下のように設定します。
| 項目 | 設定値 |
|---|---|
| 名前 |
varRefreshToken(任意) |
| タイプ | 文字列 |
| 値 | HULFT Square のリフレッシュトークンを貼り付け |
リフレッシュトークンは HULFT Square の管理画面から取得してください。
Step 4|LoginAPI
アクションを追加し、検索欄で HTTP と検索 → 「HTTP」 を選択します。
| 項目 | 設定値 |
|---|---|
| タイトル |
LoginAPI(任意) |
| URI | https://app.square.hulft.com/v1/users/login |
| Method | POST |
| Headers | Content-Type: application/json |
Body の設定:
"{\"email\":\"test@example.com\",\"password\":\"password123\"}"
Body は上記のようにエスケープした文字列形式で入力しないと、JSON 形式として設定されません。
Step 5|変数の設定 A(accessToken を格納)
「変数を設定」 アクションを追加し、以下のように設定します。
| 項目 | 設定値 |
|---|---|
| 名前 | varAccessToken |
値の 「Fx」 を押下し、以下の式を入力 → 「追加」 を押下します。
body('LoginAPI')?['accessToken']
LoginAPI のレスポンスから
accessTokenを取り出して変数に格納する処理です。
Step 6|アクセストークン取得
「HTTP」 アクションを追加し、以下のように設定します。
| 項目 | 設定値 |
|---|---|
| タイトル |
AccessTokenAPI(任意) |
| URI | https://app.square.hulft.com/v1/rest-api-token |
| Method | PUT |
| Headers | Content-Type: application/json |
| Headers | Authorization: Bearer @{variables('varRefreshToken')} |
Authorization ヘッダーの設定方法:
- Authorization のバリューに
Bearerと入力し、半角スペース を入れる - 入力欄の 稲妻マーク を押下
- ポップアップから
varAccessTokenを選択
次に、
Body の設定(Fx で入力):
concat(
'{',
'"refreshToken":"', variables('varRefreshToken'), '"',
'}'
)
Fx を押下し、上記の式を入力 → 「追加」 を押下します。
Step 7|変数の設定 B(アクセストークン を更新)
「変数を設定」 アクションを追加し、以下のように設定します。
| 項目 | 設定値 |
|---|---|
| 名前 | varAccessToken |
値の 「Fx」 を押下し、以下の式を入力 → 「追加」 を押下します。
body('AccesstokenAPI')?['accessToken']
AccessTokenAPI のレスポンスから新しい
accessTokenを取り出して変数を上書きします。
Step 8|JobExecutionAPI(ジョブ実行API)の設定
「HTTP」 アクションを追加します。URI は HULFT Square の REST API ジョブに記載されているエンドポイントを設定してください。
XML レスポンスの場合
| 項目 | 設定値 |
|---|---|
| タイトル |
JobExecutionAPI(任意) |
| URI | HULFT Square の REST APIジョブ エンドポイント |
| Method | 任意(REST APIジョブの設定に合わせて) |
| Headers | Content-Type: application/xml |
| Headers | Authorization: Bearer @{variables('varAccessToken')} |
Body の設定(xml):
<request></request>
<request> と </request> の間にカーソルを置いた状態で 稲妻マーク を押下し、requestText を選択します。
JSON レスポンスの場合
| 項目 | 設定値 |
|---|---|
| Headers | Content-Type: application/json |
| Headers | Authorization: Bearer @{variables('varAccessToken')} |
Body の設定(json):
{
"request": ""
}
"" の間にカーソルを置いた状態で 稲妻マーク を押下し、requestText を選択します。
Step 9|エージェントに応答する
「エージェントに応答する」 アクションを追加して、フローを完成させます。
エージェント画面からテスト実行する際、出力の追加・設定が必要になります。
APIレスポンスで取得したテキストのjson項目を指定します。
4. 下書きを保存する
フローを公開する前に、必ず 「下書きを保存する」 を実施してください。
5. 概要の作成
- デザイナータブ → 概要タブ に遷移
- 「編集」ボタン を押下
- 右側の詳細画面で以下を入力 → 「保存」 を押下
| 項目 | 設定値 |
|---|---|
| フロー名 | 任意 |
| 説明 | 任意 |
6. フローをオンにする
「オンにする」ボタン を押下します。
「オンにする」ボタンが非活性の場合は、先に 「公開する」 を押下してください。
ボタンが「オフにする」に変わればOKです。
7. 公開
- デザイナータブ に戻る
- 右上の 「公開」ボタン を押下
8. デバッグ
- 「テスト」 を押下
- 「手動」 を選択 → 「テスト」 を押下
- 使用する API に必要な値を入力して実行
フローが正常に動作すれば完了です🎉
「活動」タブから、実行結果の履歴が確認できます。
→エラー箇所と原因の調査が可能です。便利!
まとめ
「認証 → トークン取得 → 実行」 の3段階を意識するとフロー全体が整理しやすいです。
| フェーズ | ステップ | 内容 |
|---|---|---|
| 準備 | 1〜3 | トリガー設定・変数初期化 |
| 認証 | 4〜7 | Login → AccessToken 取得 |
| 実行 | 8〜9 | ジョブ実行・エージェント応答 |
今回は標準外の認証方式でのシステム間をつなぐAPI手順をお届けしました。
次回(第4回)では、 iPaaS × Box の組み合わせで権限制御を意識したデータ探索です。
本記事をご覧いただき、ありがとうございました。
