ファイル ハンドラーのキャッシュをリセットする
ファイル ハンドラーは、ブラウザーとサーバーでローカルに 2 つの方法でキャッシュされます。 これらのキャッシュのタイムアウトは 24 時間です。つまり、ファイル ハンドラー マニフェストの更新がユーザーに表示されるまでに最大 48 時間かかることがあります。
ファイル ハンドラーを開発するときに、アカウントのローカル キャッシュをリセットして最新のファイル ハンドラーを表示できると便利です。
キャッシュをリセットするには、次の操作をする必要があります。
- 以下の要求を送信して、サーバー側のキャッシュを更新します。
- ブラウザーのローカル データをクリアする
- OneDrive のブラウザー ウィンドウを閉じます。
- ブラウザー ウィンドウを開き、OneDrive に戻ります。
OneDrive API (Microsoft Graph ではなく) を介して、次の要求を行うことによって、ファイル ハンドラーのリストを更新するように要求できます。
HTTP 要求
GET https://{tenant}-my.sharepoint.com/_api/v2.0/drive/apps?$forceRefresh=1
Authorization: Bearer {access-token}
注: この要求の {access-token} には、SharePoint アプリケーションの MyFiles.Write
か Sites.Read.All
のいずれかのスコープが必要です。
この要求は OneDrive にキャッシュの更新を指示しますが、キャッシュから現在の値を返します。 キャッシュは、ユーザーのテナントにインストールされているアプリケーションの数に応じて、再投入するまでに数秒かかることがあります。
インストールされたファイル ハンドラーのサーバー側キャッシュに加えて、OneDrive Web アプリにはファイル ハンドラーのセッション キャッシュもあります。 このキャッシュは、ブラウザー セッションが終了すると (最後の [OneDrive] タブが閉じるとき) 自動的に消去されます。
エンドユーザーのために forceRefresh メソッドを呼び出す
(管理者導入の代わりに) ユーザーが同意するシナリオでは、ユーザーが初めてアプリケーションに同意した後に上記の要求を呼び出すことは、ユーザー エクスペリエンスにとって有益な場合があります。 このように、ファイル ハンドラーが表示されるまで最大 24 時間待つのではなく、次にユーザーが OneDrive Web アプリにアクセスするときに、ファイル ハンドラーを表示します。
テナント 管理リセット
アプリの更新はシステム テナント管理者に反映されるまでに時間がかかるため、保存されているアプリ キャッシュをグローバルに更新できるため、ユーザーに対するファイル ハンドラーの可視性に影響します。 これは、ファイル ハンドラーをホストしている AAD アプリに対するユーザーの割り当て、非表示フラグ、またはその他の更新に基づく変更に影響します。 テナント管理者が URL にアクセスできるすべてのユーザーのキャッシュされたアプリ データをリセットするには、次の手順を実行します。
GET https://{tenant}.sharepoint.com/_api/v2.0/drive/apps?$adminForceRefresh=1
Authorization: Bearer {access-token}
この API は、すべてのユーザーに影響を与えるパフォーマンスへの影響を回避するために、1 時間に 1 回だけ呼び出すことができます。