В настоящее время я работаю над интеграцией PowerBI. Я настроил приложение и предоставил доступ к API-интерфейсам PowerBI Service.
Но после получения токена доступа я получаю 403, когда пытаюсь позвонить https://api.powerbi.com/v1.0/myorg/datasets
Я получаю 403, даже если пытаюсь вызвать API, чтобы получить все рабочие области, хотя у меня тоже есть это разрешение.
Вот мой пример кода:
String datasetJson = "{\"name\": \"Sales101\", \"tables\": " + "[{\"name\": \"Product\", \"columns\": "
+ "[{ \"name\": \"ProductID\", \"dataType\": \"Int64\"}, "
+ "{ \"name\": \"Name\", \"dataType\": \"string\"}, "
+ "{ \"name\": \"Category\", \"dataType\": \"string\"},"
+ "{ \"name\": \"IsCompete\", \"dataType\": \"bool\"},"
+ "{ \"name\": \"ManufacturedOn\", \"dataType\": \"DateTime\"}" + "]}]}";</p>
<pre><code> OkHttpClient client = new OkHttpClient.Builder().followRedirects(false).build();
RequestBody formBody = RequestBody.create(MediaType.parse("application/json"), datasetJson);
Request request = new Request.Builder().addHeader("Authorization", String.format("Bearer {0}", accessToken))
.url("https://api.powerbi.com/v1.0/myorg/datasets").post(formBody).build();
Call call = client.newCall(request);
okhttp3.Response response = call.execute();
Обратите внимание, что у моего токена доступа, похоже, есть необходимые разрешения. Пожалуйста, посмотрите ниже отрывок, когда я декодировал свой JWT:
"scp": "App.Read.All Capacity.Read.All Capacity.ReadWrite.All Content.Create Dashboard.Read.All
Dashboard.ReadWrite.All Dataflow.Read.All Dataflow.ReadWrite.All Dataset.Read.All
Dataset.ReadWrite.All Gateway.Read.All Gateway.ReadWrite.All Report.Read.All Report.ReadWrite.All
StorageAccount.Read.All StorageAccount.ReadWrite.All Tenant.Read.All Tenant.ReadWrite.All
Workspace.Read.All Workspace.ReadWrite.All",
Также обратите внимание, что я обычный пользователь PowerBI. Чтобы использовать API ... Я сделал следующее:
Я не вносил никаких изменений в PowerBI ... Я полагаю, что разрешений API достаточно?
Руководство очень ценится.