Rozhraní API pro stahování souborů

Rozhraní API pro stahování souborů umožňuje uživatelům stahovat data z vlastního vizuálu do souboru na svém úložném zařízení. Stažení vizuálu vyžaduje souhlas uživatele a oprávnění správce poskytnuté v globálním přepínači správce. Toto nastavení je oddělené a není ovlivněno omezeními stahování použitými v nastavení exportu a sdílení tenanta vaší organizace.

Snímek obrazovky s nastavením správce, které umožňuje stahování vlastních vizuálů

Poznámka:

Rozhraní API pro stahování souborů má tři metody:

  • exportVisualsContent je k dispozici z rozhraní API verze 4.5.
  • status je k dispozici z rozhraní API verze 4.6.
  • exportVisualsContentExtended je k dispozici z rozhraní API verze 5.3.
  • Pokud chcete zjistit, kterou verzi používáte, podívejte se do apiVersionsouboru pbiviz.json .

K exportu do souborů následujících typů použijte rozhraní API pro stahování souborů:

  • .txt
  • .Csv
  • .Json
  • .tmplt
  • .xml
  • .pdf
  • .xlsx

Před zahájením stahování se zobrazí okno s žádostí o potvrzení, že vizuál pochází z důvěryhodného zdroje.

Snímek obrazovky s výzvou k potvrzení stahování pouze v případě, že pochází z důvěryhodného zdroje

Jak používat rozhraní API pro stahování souborů

Pokud chcete použít rozhraní API pro stahování souborů, přidejte do pole oprávnění v možnostech vizuálu deklaraci.

Rozhraní API pro stahování souborů má tři metody:

Rozdíl mezi těmito dvěma metodami je návratová hodnota.

Metoda status

Metoda stavu vrátí stav rozhraní API pro stahování souborů:

  • PrivilegeStatus.DisabledBy Správa: Přepínač správce tenanta je vypnutý.
  • PrivilegeStatus.NotDeclared: Vizuál nemá pro místní úložiště v poli oprávnění žádnou deklaraci.
  • PrivilegeStatus.NotSupported: Rozhraní API se nepodporuje. Další informace najdete v omezeních .
  • PrivilegeStatus.Allowed: Rozhraní API je podporované a povolené.

Metoda exportVisualsContent

Metoda exportVisualsContent má čtyři parametry:

  • content: string
  • název souboru: řetězec
  • fileType: string – Při exportu do souboru .pdf nebo .xlsxfileType by měl být parametr base64
  • fileDescription: string

Tato metoda vrátí příslib, který bude vyřešen pro logickou hodnotu.

Metoda exportVisualsContentExtended

Metoda exportVisualsContentExtended má také čtyři parametry:

  • content: string
  • název souboru: řetězec
  • fileType: string – Při exportu do souboru .pdf nebo .xlsxfileType by měl být parametr base64
  • fileDescription: string

Tato metoda vrátí příslib, který bude vyřešen s výsledkem typu ExportContentResultInfo , který obsahuje následující parametry:

  • downloadCompleted – pokud stahování bylo úspěšně dokončeno.
  • název souboru – název exportovaného souboru.

Příklad: rozhraní API pro stahování souborů

Tady je příklad, jak stáhnout obsah vlastního vizuálu do excelového souboru a textového souboru.

import IDownloadService = powerbi.extensibility.IDownloadService;
...

export class Visual implements IVisual {
    ...
    private downloadService: IDownloadService;
    ...

    constructor(options: VisualConstructorOptions) {
        this.downloadService = options.host.downloadService;
         ...

        const downloadBtn: HTMLElement = document.createElement("button");
        downloadBtn.onclick = () => {
            let contentXlsx: string = ...;//content in base64
            let contentTxt: string = ...;
            this.downloadService.exportVisualsContent(contentTxt, "mytxt.txt", "txt", "txt file").then((result) => {
                if (result) {
                    //do something
                }
            }).catch(() => {
                //handle error
            });

            this.downloadService.exportVisualsContent(contentXlsx, "myfile.xlsx", "base64", "xlsx file").then((result) => {
                if (result) {
                    //do something
                }
            }).catch(() => {
                //handle error
            });

            this.downloadService.exportVisualsContentExtended(contentXlsx, "myfile.xlsx", "base64", "xlsx file").then((result) => {
                if (result.downloadCompleted) {
                    //do something
                    console.log(result.fileName);
                }
            }).catch(() => {
                //handle error
            });
        };

        // if you are using API version > 4.6.0
        downloadBtn.onclick = async () => {
            try {
                const status: powerbi.PrivilegeStatus = await this.downloadService.exportStatus();
                if (status === powerbi.PrivilegeStatus.Allowed) {
                    const result = await this.downloadService.exportVisualsContent('aaaaa','a.txt', 'text/plain', 'aa');
                    // handle result
                } else {
                    // handle if the API is not allowed
                }

            } catch (err) {
                //handle error
            }
        }
    }
}

Úvahy a omezení

  • Rozhraní API se podporuje jenom v služba Power BI a Power BI Desktopu.
  • Limit velikosti staženého souboru je 30 MB.
  • Toto rozhraní API je privilegované rozhraní API.