Supplies are limited. Contact info@espc.tech right away to save your spot before the conference sells out.
Get your discountScore big with last-minute savings on the final tickets to FabCon Vienna. Secure your discount
I've looked through all the forums I've found, but I haven't seen a solution.
The problem is that I am using the given code:
$curlPostToken = curl_init();
$clientId = "******";
$clientSecretId = "******";
$tenantId = "******";
$workspace = "******";
$ReportId = "******";
curl_setopt_array($curlPostToken, array(
CURLOPT_URL => "https://login.microsoftonline.com/$tenantId/oauth2/token",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_SSL_VERIFYHOST => false,
CURLOPT_SSL_VERIFYPEER => false,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => array(
'grant_type' => 'client_credentials',
'scope' => '.default',
'resource' => 'https://analysis.windows.net/powerbi/api',
'tenant_id' => $tenantId,
'client_id' => $clientId, // Registered App Application ID
'client_secret' => $clientSecretId,
)
));
$tokenResponse = curl_exec($curlPostToken);
$tokenError = curl_error($curlPostToken);
echo $tokenError;
// decode result, and store the access_token in $embeddedToken variable:
$tokenResult = json_decode($tokenResponse, true);
$token = $tokenResult["access_token"];
$bearerToken = "Bearer " . ' ' . $token;
$post_params = array(
"reports" => Array(
Array('id'=>$ReportId),
),
"accessLevel"=>"View",
);
$payload = json_encode($post_params);
$headers = array(
"Content-Type: application/json",
"Authorization: Bearer $access_token"
);
$url = "https://api.powerbi.com/v1.0/myorg/groups/$workspace/reports/$ReportId/GenerateToken";
$ch2 = curl_init( $url );
curl_setopt( $ch2, CURLINFO_HEADER_OUT, true);
curl_setopt( $ch2, CURLOPT_POSTFIELDS, $payload);
curl_setopt( $ch2, CURLOPT_HTTPHEADER, $headers );
curl_setopt( $ch2, CURLOPT_RETURNTRANSFER, true);
curl_setopt( $ch2, CURLOPT_FAILONERROR, true);
$response = curl_exec( $ch2 );
if (curl_errno($ch2)) {
$error_msg = curl_error($ch2);
}
echo $response;
curl_close($ch2);
if (isset($error_msg)) {
echo $error_msg;
}
Added application as (service principal).
Issued permissions.
Added a service principal to Power Bi Workspace Access.
But no matter what I do, no matter how I twist the settings, I always get an error: The requested URL returned error: 403
I'm already crazy about this problem.
Help me 😞
User | Count |
---|---|
10 | |
5 | |
4 | |
4 | |
3 |
User | Count |
---|---|
13 | |
9 | |
5 | |
5 | |
4 |