in modules/quanthub_core/src/PowerBIEmbedConfigs.php [236:283]
public function getPowerEmbedConfig($reportId, $extraDatasets = '') {
$token = $this->getPowerBIAccessToken();
$powerbiAPIURL = 'https://api.powerbi.com/v1.0/myorg/groups/' . $this->getWorkspaceID() . '/reports/' . $reportId;
try {
$request = $this->httpClient->request(
'GET',
$powerbiAPIURL,
[
'headers' => [
'Authorization' => 'Bearer ' . $token,
'Cache-Control' => 'no-cache',
],
'connect_timeout' => 30,
'allow_redirects' => [
'max' => 10,
],
]
);
}
catch (\Exception $e) {
$this->loggerFactory->error('getPowerEmbedConfig: ' . $e->getMessage());
return NULL;
}
$embedResponse = json_decode($request->getBody(), TRUE);
if (isset($embedResponse['error'])) {
$this->loggerFactory->error('error: ' . $embedResponse['error']['message']);
return NULL;
}
$embedUrl = $embedResponse['embedUrl'];
$datasetId = $embedResponse['datasetId'];
if (!empty(trim($extraDatasets))) {
$extraDatasets = preg_replace('/\s+/', ',', $extraDatasets);
$datasetIds = preg_split('/[,]+/', $extraDatasets);
}
$datasetIds[] = $datasetId;
$embedToken = $this->getPowerBIEmbedToken($token, $reportId, $datasetIds);
return [
'embed_url' => $embedUrl,
'embed_token' => $embedToken,
];
}