連携先アプリの認証エラー
認証作成エラー
エンドユーザーがウィザードでの認証の作成に失敗する場合は、エンドユーザーに対しその場ですぐにエラーメッセージが表示されます。エンドユーザーはベンダーに問い合わせをする等によりトラブルシュートをすることができます。

認証無効エラー
連携先アプリによっては、トークンをリフレッシュする仕組みがないなどの理由により、アクセストークン等の有効期限が切れると認証が無効となりAPIの呼出がエラーとなります。
それ以外にも、連携先アプリの何らかの仕組みにより認可が取り消される等でアクセストークンが無効化された場合にも認証は無効になります。
Anyflowの仕様
基本的に、Anyflowから連携先アプリにリクエストを行った際、
401( 認証情報が無効 )403( 権限エラー )
のステータスコードが返却された場合に、Anyflowでは認証が無効になったと判定しアクセストークン等を破棄(リボーク)します。
より詳細には、
リフレッシュ機構をもつアプリの場合:リフレッシュ時のレスポンスが 401 等だった場合にリボーク
リフレッシュ機構をもたないアプリの場合:アクション(レコードの取得等)のレスポンスが 401 等だった場合にリボーク
認証が無効となった場合、Anyflowシステムから連携先アプリのAPIを実行できないため、ソリューションは失敗します。
ソリューションを有効にするには、以下の方法に沿ってエンドユーザーが解決を行う必要があります。
認証無効エラーの検知方法
イベント通知
イベント通知を設定することで、ご利用中のツールに認証無効エラー発生の情報を通知することができます。

通知される情報
該当のユーザーのインストール一覧へのリンク
アプリ名
無効になったソリューションへのリンク
上記の情報を踏まえて、エンドユーザーに適切な案内を送付してください。
Anyflowからの自動メール
エンドユーザーに再認証を促すメールをAnyflowから自動送信できます。
(メールは [email protected] から送信されます。)
チームインテグレーションを利用している場合、JWTペイロードの anyflow_team_email に設定してあるメールアドレスに、ユーザーインテグレーションを利用している場合は anyflow_user_email にメールが送信されます。
送信されるメールのテンプレートは、ベンダーにて設定することができます。
テンプレートで利用できる変数
エンドユーザーチーム名
{$end_user_team_name$}
Example Inc.
ソリューション名
{$solution_name$}
GoogleDriveにファイルがアップロードされたら請求書サービスに取り込む
認証エラーになったアプリ名
{$app_name$}
GoogleDrive, Salesforce, Slack等
ソリューションID
{$solution_id$}
6dcc67b8-9c8a-4c61-bc7d-f977272573d2
テンプレートの例
件名:
本文:
再認証の方法
認証無効エラーが発生した場合、エンドユーザーは改めてウィザードから認証(コネクション)を追加することができます。

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

プルダウンから「新しいコネクションを追加する」を選び、新規のコネクション(認証)を追加することもできます。

上記のケースでは、ソリューションの有効状態はdisabledになっています。(ソリューションはインストールされているものの、有効にされていない状態)
再度ソリューションを有効にするにはSDKのenableSolution メソッドを使って有効状態をenabledに戻すように実装してください。
ソリューション更新によりスコープ不足となった場合
以下の様に再認証ボタンが表示される場合は、アクセストークン等の有効期限が切れていることが原因ではなく、許可されたスコープが不足していることが原因です。

例えばSlackを使った2つのソリューションをエンドユーザーに提供していたとします。
ソリューション1:Slackの「読み取り」を行う
ソリューション2:Slackの「読み取り」と「書き込み」を行う
エンドユーザーがソリューション1を利用する際に認証を行った場合、コネクションに付与されるスコープは「読み取り」となります。
その後、エンドユーザーがソリューション2を利用しようとした場合には、「書き込み」のスコープが不足しているため再認証のボタンが表示され、コネクションのスコープを変更することができます。
このケースではソリューションの有効状態は自動的には変更されません。 元々disabledであればdisabledのまま、enabledであればenabledのままとなります。
有効状態の変更は必要に応じてSDKのenableSolution / disableSolution メソッドを使って実施してください。
最終更新