Anyflow Embed Docs
管理画面を開く
  • 👋イントロダクション
    • はじめに
    • 初期セットアップ
    • 用語集
  • 🔰トライアルツアー
    • トライアルツアー初級編
      • STEP1|アカウント作成 〜 ソリューション作成
      • STEP2|エンドユーザー変数
      • STEP3|ifステップ
      • STEP4|変数の活用、デバッグ
      • 動画チュートリアル
    • トライアルツアー中級編
      • STEP1 | 独自のアクションを追加する
      • STEP2 | My Event を理解する
      • STEP3 | My Event を実装する
    • トライアルツアーが終わったら
  • 🍳レシピ
    • CRM
      • SalesforceのToDoデータを取得する
      • Salesforceの取引先データを取得する
      • Salesforceの取引先データを登録する
      • Salesforceの商談を取得する
      • Salesforceのリードを取得する
      • HubSpotのコンタクトデータを取得する
      • HubSpotの会社データを取得する
      • HubSpotの取引データを取得する
    • コミュニケーション
      • Slack チャンネルにファイルをアップロードする
      • Slack チャンネルのメンバー情報一覧を取得する
      • 独自のSlackBotを設定する
    • 人事労務
      • SmartHRの部署データを取得する
      • SmartHRの従業員データを取得する
      • freee人事労務の従業員データを取得する
      • freee人事労務の勤怠データを取得する
    • 会計
      • freee会計の事業所データを取得する
      • freee会計の取引先データを取得する
      • freee会計の取引データを取得する
      • freeeコネクタのスコープを変更する
    • グループウェア
      • Google DriveのOAuthアプリを作成する
  • 🎨ソリューションエディタ
    • ソリューションエディタとは
    • トリガー
      • 自社プロダクト起点
        • Clickトリガー
        • Requestトリガー
          • Responseステップ
        • My Eventトリガー
          • アクセストークンの発行
        • Webhookトリガー
        • Request / My Event / Webhook トリガーの違い
      • 外部プロダクト起点
        • ポーリングトリガー
        • リアルタイムトリガー
      • スケジューラートリガー
      • トリガー条件
    • アクション
      • APIの呼び出し
        • 専用アクション
        • カスタムアクション
        • HTTPアクション
      • データの変換
        • Pythonアクション
        • 変数アクション
        • リストアクション
        • 日付と時刻アクション
        • CSVアクション
      • データの記録
        • キーバリューストア(KVS)アクション
        • ログアクション
        • メールアクション
    • ロジック
      • if
      • 繰り返し
      • エラー監視
      • 停止
    • 変数
      • 標準変数
      • エンドユーザー変数
    • 共通仕様
      • スキーマ定義
      • 固定リストと動的リスト
      • Formula
  • 🖼️ウィザードエディタ
    • ウィザードエディタとは
    • ウィジェット
      • アシスト
      • 複数選択アシスト
      • テーブルアシスト
      • チェックボックス
      • マッピング
      • コンディション
      • CSV(ファイル全体)
      • CSV項目(ヘッダーのみ)
    • ウィザードの仕様
    • 詳細設定
      • Markdown記法
      • テキストの入力パターンを指定する
      • デフォルト値を指定する
  • 🔌コネクタ
    • 対応コネクタ一覧
    • SaaSコネクタ固有の注意点
      • SaaS側でIPアドレス制限をしている場合
      • 自社独自のOAuthクライアントが必須のSaaS
      • cybozu.com製品で認証エラーとなる場合
      • kintoneコネクタとkintone(OAuth)コネクタの違い
      • ZoomコネクタとZoom(カスタム)コネクタの違い
      • SlackBotコネクタの違い
      • 2種類のSmartHRコネクタについて
    • OAuth画面をカスタムする
  • 🚀リリース
    • テスト
    • デプロイ
    • デプロイ環境
    • エンドユーザーへの提供方法
    • 自社プロダクトへの組み込み
      • JWTや公開鍵を生成する
      • SDK組み込みツアー
    • Anyflowドメインでの提供
  • 🧰運用/保守
    • 実行履歴
      • エンドユーザー向け実行履歴
      • ベンダー向け実行履歴
    • エラーへの対応
      • 連携先アプリの認証エラー
      • アクションの自動リトライ
      • ソリューションの再実行
    • イベント通知
    • ソリューション実行の上限値
    • ソリューションの削除
  • 📄ポリシー
    • 障害時の対応
    • エンドユーザーの問い合わせ
    • サービスレベル/稼働率
    • サービスの責任範囲
    • セキュリティポリシー
  • ⚙️Anyflow SDK
    • Anyflow SDK v0.13.0
      • エラータイプ
      • リファレンス
      • マイグレーションガイド
      • よくあるご質問
  • ⚙️Anyflow API
    • Vender Server API
      • Open API Specification
    • End User API
      • Open API Specification
    • Webhook
      • Open API Specification
GitBook提供
このページ内
  • 完成イメージ
  • 連携ソリューション一覧画面(例)
  • 設定済み連携一覧画面(例)
  • 1. 初期設定
  • 1-1. インストール
  • 1-2. JWTの生成
  • 1-3. SDKの初期化
  • 2. 連携ソリューション一覧画面の実装
  • 2-1. ソリューションの一覧を取得する
  • 2-2. ソリューションのインストール状態を取得する
  • 2-3. ボタンを押したらウィザードを立ち上げる
  • 3. 設定済み連携一覧画面の実装
  • 3-1. 設定済み連携の一覧を取得する
  • 3-3. 手動実行の場合に実行ボタンを表示する
  • 3-4. ソリューションの有効状態を切り替える
  • 3-5. 実行履歴を表示する
  • 参考:SDKメソッドと画面要素の関係
  1. リリース
  2. 自社プロダクトへの組み込み

SDK組み込みツアー

Anyflow SDKをプロダクトに組み込む手順について

前へJWTや公開鍵を生成する次へAnyflowドメインでの提供

最終更新 1 か月前

完成イメージ

トライアルツアーで使用したを例として取り上げます。

画面の構成や要件はあくまでも一例です。このページで紹介していないメソッドもには存在するため、状況に応じて利用してください。

連携ソリューション一覧画面(例)

要件

  • 連携ソリューション一覧にはデプロイされたソリューションの一覧が表示される

  • 各ソリューションの「連携する」ボタンを押すとウィザードが立ち上がる

  • 既に連携を設定済の場合は「連携する」ボタンではなく「連携設定済み」ボタンを表示する

設定済み連携一覧画面(例)

要件

  • 設定済のソリューションの一覧が表示される

  • 最終実行日が表示される

  • 「実行履歴」ボタンを押すとそのソリューションの実行履歴を表示できる

  • トリガーがClickトリガーまたはMy Eventトリガーの場合は手動実行できる

  • ソリューションの有効状態を切り替えられる

以下の手順で、組み込み例を再現することができます。

1. 初期設定

1-1. インストール

npm install @anyflowinc/embed-sdk

1-2. JWTの生成

JWT生成の大まかなステップ

  1. ウィザードを埋め込むサイトのオリジン(URL)の共有

  2. JWTペイロードの内容検討

  3. 公開鍵と秘密鍵の生成

  4. JWT生成処理の実装

1-3. SDKの初期化

const fetchJwt = async () => {
  const res = await fetch("./path/to/your/jwt/endpoint");
  const json = await res.json();
  return json["token"];
};

AnyflowSDK.init(fetchJwt);
const sdk = AnyflowSDK.instance;

2. 連携ソリューション一覧画面の実装

2-1. ソリューションの一覧を取得する

// 特定のソリューションの情報のみ取得する
const solution = await sdk.getSolution("solution_id");

// リストで取得する
const solutions = await sdk.getSolutions();
// 特定のソリューションの情報のみ取得する
const solution: Solution = await sdk.getSolution("solution_id");

// リストで取得する
const solutions: Solution[] = await sdk.getSolutions();

以下の様な情報を取得できます。

[{
    "id": "string",
    "name": "string",
    "description": "string",
    "state": "string",
    "runnable": "boolean",
    "thumbnail_url": "string",
    "created_at": "string (ISO 8601 format)",
    "updated_at": "string (ISO 8601 format)",
    "latestJob": {},
}]

2-2. ソリューションのインストール状態を取得する

const state = solution.state;
const state: SolutionState = solution.state;
state
説明

not_installed

まだソリューションがインストールされていません。

enabled

ソリューションが有効です。

disabled

ソリューションはインストールされていますが、有効にされていません。

今回の例では、not_installed の場合はインストール前と判断し、UIでは「連携する」ボタンを表示します。

enabled と disabled の場合はインストール後と判断し、UIでは「連携設定済み」ボタンを表示します。

2-3. ボタンを押したらウィザードを立ち上げる

const iframe = document.getElementById("solution_wizard");
const solutionWizard = sdk.createWizard(iframe);
solutionWizard.load("your_solution_id");
const iframe = document.getElementById("solution_wizard");
const solutionWizard: SolutionWizard = sdk.createWizard(iframe);
solutionWizard.load("your_solution_id");

3. 設定済み連携一覧画面の実装

3-1. 設定済み連携の一覧を取得する

設定済みの連携一覧は、step 2-1, 2-2と同様にgetSolutionメソッドを使い、stateプロパティが enabled または disabled のソリューションのみを抽出することで得られます。

getSolutionメソッドで得られたSolutionオブジェクトのlatestJobプロパティから最終実行日時の情報にアクセスできます。

[{
    "id": "string",
    "name": "string",
    "description": "string",
    "state": "string",
    "runnable": "boolean",
    "thumbnail_url": "string",
    "created_at": "string (ISO 8601 format)",
    "updated_at": "string (ISO 8601 format)",
    "latestJob": {
        "id": "string",
        "state": "string",
        "archived": "boolean",
        "logs": ["array of strings"],
        "startedAt": "string (ISO 8601 format)",
        "finishedAt": "string (ISO 8601 format)"
    },
}]

3-3. 手動実行の場合に実行ボタンを表示する

getSolutionメソッドで得られたSolutionオブジェクトのrunnableがTrueの場合、そのソリューションは手動実行することが可能です。

const job = await sdk.runSolution("your_solution_id");

3-4. ソリューションの有効状態を切り替える

// 有効にする
await sdk.enableSolution("your_solution_id");

// 無効にする
await sdk.disableSolution("your_solution_id");

3-5. 実行履歴を表示する

solutionWizard.loadHistory("your_solution_id");

参考:SDKメソッドと画面要素の関係

まずは次のコマンドを実行しします。

step3で使うものです。 Anyflow Embedでは、を使用してベンダープロダクトとデータのやりとりを行います。

step2で作成したJWT生成の関数をSDKのに渡すとSDKを初期化できます。

初期化後はを使いSDKインスタンスを取得します。

ソリューション一覧

ソリューションの一覧情報を取得するにはSDKのを使用します。

左:インストール前 右:インストール後

ソリューションがインストール済みかどうかは Solutionオブジェクトの から取得できます。()

ウィザード

連携ボタンを押したとき、認証や連携の設定を行う「ウィザード」を立ち上げるにはを使用しウィザードのインスタンスを生成したうえで、そこにで指定のソリューションを読み込みます。

設定済み連携一覧

必要に応じて実行ボタンを表示してください。(またはの場合、手動実行が可能です)

Clickトリガーの場合、ソリューションを実行するには SDK の を実行します。

My Eventトリガーの場合、ソリューションを手動実行するには SDK の を実行します。

ソリューションを有効/無効を切り替えるには sdk のを、無効にするにはdisableSolutionソッドを実行します。

SolutionWizard オブジェクトの loadHistory メソッドを使用します。 loadHistory メソッドには実行履歴を確認したいソリューションの ID を指定します。()

SDKメソッドと画面要素の関係
🚀
JWT
Clickトリガー
My Eventトリガー
SDKドキュメント
ウィザードホスティングのページ
SDKドキュメント
SDKドキュメント
左:インストール前 右:インストール後
ソリューション一覧
ウィザード
設定済み連携一覧
1159
SDKをインストール
init関数
instance関数
getSolutionメソッド
stateプロパティ
createWizard メソッド
loadメソッド
runSolutionメソッド
sendMyEventメソッド
enableSolution/disableSolutionメソッド