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提供
このページ内
  • 認証エラーが起こる例
  • Anyflowの仕様
  • 認証エラーの検知方法
  • イベント通知
  • Anyflowからの自動メール
  • 再認証の方法
  • 再認証ボタンが表示されるケース
  1. 運用/保守
  2. エラーへの対応

連携先アプリの認証エラー

認証エラーが起こる例

連携先アプリによっては、トークンをリフレッシュする仕組みがないなどの理由により、アクセストークン等の有効期限が切れると認証がエラーとなります。

それ以外にも、連携先アプリの何らかの仕組みにより認可が取り消される等でアクセストークンが無効化された場合にも認証はエラーとなります。

Anyflowの仕様

基本的に、Anyflowから連携先アプリにリクエストを行った際、

  • 401( 認証情報が無効 )

  • 403 ( 権限エラー )

のステータスコードが返却された場合に、Anyflowでは認証が無効になったと判定しアクセストークン等を破棄(リボーク)します。

より詳細には、

  • リフレッシュ機構をもつアプリの場合:リフレッシュ時のレスポンスが 401 等だった場合にリボーク

  • リフレッシュ機構をもたないアプリの場合:アクション(レコードの取得等)のレスポンスが 401 等だった場合にリボーク

認証がエラーとなった場合、Anyflowシステムから連携先アプリのAPIを実行できないため、ソリューションは無効となります。

ソリューションを有効にするには、以下の方法に沿ってエンドユーザーが解決を行う必要があります。


認証エラーの検知方法

イベント通知

通知される情報

  • 該当のユーザーのインストール一覧へのリンク

  • アプリ名

  • 無効になったソリューションへのリンク

上記の情報を踏まえて、エンドユーザーに適切な案内を送付してください。

Anyflowからの自動メール

エンドユーザーに再認証を促すメールをAnyflowから自動送信できます。 (メールは [email protected] から送信されます。)

チームインテグレーションを利用している場合、JWTペイロードの anyflow_team_email に設定してあるメールアドレスに、ユーザーインテグレーションを利用している場合は anyflow_user_email にメールが送信されます。

送信されるメールのテンプレートは、ベンダーにて設定することができます。

ヒント

デフォルトでは、メール送信機能は無効です。 メール送信を有効にする場合は、Anyflow CSチームへご連絡ください。 その際、以下のテンプレート内容もお知らせください。

テンプレートで利用できる変数

項目
テンプレート変数
例

エンドユーザーメールアドレス

{$end_user_email$}

user@example.com

エンドユーザーチーム名

{$end_user_team_name$}

Example Inc.

ソリューション名

{$solution_name$}

GoogleDriveにファイルがアップロードされたら請求書サービスに取り込む

認証エラーになったアプリ名

{$app_name$}

GoogleDrive, Salesforce, Slack等

ソリューションID

{$solution_id$}

6dcc67b8-9c8a-4c61-bc7d-f977272573d2

テンプレートの例

件名:

{$solution_name$}で認証エラーが発生しました。

本文:

いつも [サービス名] をご利用いただきありがとうございます。

お使いの「{$solution_name$}」の、「{$app_name$}」で認証エラーが発生しました。
認証の期限が切れた可能性があるため、連携をOFFにしています。

以下のリンクより再度認証いただくことで、連携ソリューションが再稼働します。

[連携を設定する画面のURL]

連携ソリューション: {$solution_name$}
認証エラーになったアプリ: {$app_name$}

-------------------------------------------------
このメールは [サービス名] の連携ソリューションをご利用いただいているお客さまに送信しています。
*このメールアドレスは送信専用のため、返信できませんのでご了承ください。


再認証の方法

認証エラーが発生した場合、エンドユーザーは改めてウィザードから認証を追加することができます。

エンドユーザーが複数のコネクションを作成している場合は、上記の「新しい認証を追加」の表示ではなく、 以下の通り別のコネクションの名前が表示されます。

別のコネクションで改めてウィザードの設定を行うか、別のコネクションでも認証エラーとなる場合は、プルダウンから「新しいコネクションを追加する」を選び、新規のコネクションを追加します。

上記のケースでは、ソリューションの有効状態がdisabled(ソリューションはインストールされているが、有効にされていない)になっています。


再認証ボタンが表示されるケース

以下の様に再認証ボタンが表示される場合は、アクセストークン等の有効期限が切れていることが原因ではなく、許可されたスコープが不足していることが原因です。

例えばSlackを使った2つのソリューションをエンドユーザーに提供していたとします。

  • ソリューション1:Slackの「読み取り」を行う

  • ソリューション2:Slackの「読み取り」と「書き込み」を行う

エンドユーザーがソリューション1を利用する際に認証を行った場合、コネクションに付与されるスコープは「読み取り」となります。

その後、エンドユーザーがソリューション2を利用しようとした場合には、「書き込み」のスコープが不足しているため再認証のボタンが表示され、コネクションのスコープを変更することができます。

このケースではソリューションの有効状態は自動的には変更されません。 元々disabledであればdisabledのまま、enabledであればenabledのままとなります。

前へエラーへの対応次へアクションの自動リトライ

最終更新 1 か月前

を設定することで、ご利用中のツールに認証エラー発生の情報を通知することができます。

Slackで通知した場合のイメージ
改めて「新しい認証を追加」を実施できます
SlackBot #3 が 認証エラーのため削除され、#2 が表示されている
プルダウンから「新しいコネクションを追加する」を選択

エンドユーザーでのインストールが完了したら、SDKのを使ってソリューションの有効状態をenabledに変更してください。

スコープが不足している場合の表示

有効状態の変更は必要に応じてSDKのを使って実施してください。

🧰
イベント通知
スコープが不足している場合の表示
Slackで通知した場合のイメージ
改めて「新しい認証を追加」を実施できます
SlackBot #3 が 認証エラーになり#2 が表示されている
プルダウンから「新しいコネクションを追加する」を選択
enableSolution メソッド
enableSolution / disableSolution メソッド