1. システムとオフィスの融合
  2. media
  3. マイクロソフトソリューション SharePoint Power Apps Power Platform
  4. 動画・画像が見えなくなる?!Power Apps×SharePointでアプリを作成する際の注意点

QESブログ

動画・画像が見えなくなる?!Power Apps×SharePointでアプリを作成する際の注意点

  • LINEで送る
  • このエントリーをはてなブックマークに追加

はじめに

Power Appsでアプリを作る際に、データソースとしてSharePointサイトを選ぶケースは多いと思います。
M365を利用していれば追加ライセンスが掛からない上、既に運用している場合はそのまま転用しやすく、
データソースとして利用する上での手軽さは随一となっています。

そんなSharePointですが、サイト上に配置した動画ファイルや画像ファイルに、
アプリからアクセスできなくなるケースが存在するのはご存知でしょうか。
この記事では、SharePointサイトを利用する際に潜む落とし穴について、解説していきます。

概要

まずは、以下の画面をご覧ください。

このアプリでは、SharePointサイト上に配置されたデータを直リンクで参照して表示しています。
本来であれば赤枠の部分に弊社のロゴが表示され、中央のビデオコントロールで動画の再生ができるはずなのですが、
ロゴ画像は表示されず、ビデオコントロールは再生ボタンを押しても画像のように何も再生されません。

この事象自体は見たことが無くても、似たような構成のアプリを作った経験がある方もいるのではないでしょうか。

原因

この事象ですが、Power Apps上ではエラーとして出力されません。
そこで、アプリの実行に併せてF12キーで開ける開発者ツールを見てみると、
SharePointサイトからファイルを参照する部分の通信で、401エラーが出ていることが分かります。

401エラーが何か、という点については以下の記事で触れていますので、是非ご覧ください。

この事象は、一度もSharePointにアクセスしたことがないユーザーが、このアプリを利用することで起こります。
より具体的に言うと、参照しているSharePointサイトのCookieが無い状態で、
アプリからSharePointサイトへ接続すると、認証エラーが発生してしまうというものになります。

また、ブラウザごとに挙動が異なり、Chromeだと発生しませんがEdgeだと発生します。
さらに、EdgeのinプライベートウィンドウやChromeのシークレットウィンドウでは、
ブラウザが保持しているCookieを使わないため、同様に事象が発生します。

実際の開発作業中に、データソースであるSharePointサイトにアクセスしていないことはまずないため、
開発者目線ではこの事象に気付けないことがほとんどです。
リリース後、多くのユーザーが触れるようになって初めて、一部のユーザーのみで起こる、
といった非常に分かりにくい罠になっているというわけです。

解決方法

キャンバスアプリには、Cookieを直接扱うような機能は存在しないため、
Cookieを偽装して当てる、といったアプローチはできません。
ただ、根本原因はSharePointサイトのCookieが無いことなので、
ブラウザのセッション管理に任せるという前提であれば、ユーザーがSharePointサイトを開くだけで解決します。

アプリ内の実装のみで解決したい場合は、以下のような対応策を検討してください。

  • Launch関数でSharePointサイトを開く
    力技ではありますが、アプリの起動に併せてSharePointサイトを強制的に開く、
    メディアが見えない場合にのみ押してもらうボタンを用意してサイトを開いてもらうなど、
    ユーザーにSharePointサイトを開かせる仕組みをアプリ内に用意することで解決できます。

    この方法のメリットは、キャンバスアプリ内の実装で完結するため、開発者目線取り組みやすいという点です。
    デメリットは、サイトが別タブで開いてしまうのでややユーザビリティに欠ける点と、
    原因のところでも触れた通り、アプリ内でこの問題が発生しているかどうかを拾うことができないので、
    エラーを検知してサイトを開くといった自動化ができず、あまりスマートに解決することができない点です。
    また、データソースであるSharePointサイトに直接アクセスさせる都合で、
    サイト上のデータを直接ユーザーに触らせたくないケースにはあまり適していません。

  • PCF Galleryのiframeコンポーネントを利用し、アプリ内でサイトを表示する仕組みを用意する
    PCF Galleryには、アプリ内にiframeを埋め込むためのコンポーネントがいくつか公開されているので、
    これらをアプリで利用することで、アプリ内でサイトを表示することが可能です。

    この方法のメリットは、サイトを別タブで開く必要が無くなる点と、
    コンポーネントを非表示にすればサイトへのアクセスをユーザーから見えない部分でできる点です。
    デメリットは、コンポーネントを利用するためにいくつかの設定を行わなければならない点ですが、
    こちらは弊社の記事で解説していますので、是非参考にしていただければと思います。

これらの対策を講じて、何かしらの形でSharePointサイトにアクセスし、
Cookieを取得すれば、正しく表示することができます。

最後に

Power Apps×SharePointは非常に取り組みやすいシステム構成であることに間違いありませんが、
本記事で触れた問題や、2000件問題等、SharePoint特有の問題に悩まされることも多いです。
弊社では、PowerPlatformのご利用に伴走してサポートするサービスも展開しておりますので、
社内向けアプリの開発・運用で悩まれている方は是非ご利用を検討いただければ幸いです。

 

このブログで参照されているMicrosoft、Power Apps、SharePoint、その他マイクロソフト製品およびサービスは、米国およびその他の国におけるマイクロソフトの商標または登録商標です。

  • LINEで送る
  • このエントリーをはてなブックマークに追加

お気軽にお問い合わせください。

ページのトップへ