403禁止,当我尝试调用PowerBI API推送数据集或获取所有工作空间时

问题描述 投票:0回答:1

我目前正在从事PowerBI集成。我已经设置了一个应用程序,并授予了对PowerBI Service API的访问权限。

但是获取访问令牌后,当我尝试调用https://api.powerbi.com/v1.0/myorg/datasets时得到403

即使我也拥有该权限,即使尝试调用API以获取所有工作区,我也会得到403。

这是我的示例代码:


        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\"}" + "]}]}";

    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数据流.Read.All数据流.ReadWrite.All数据集.Read.All    Dataset.ReadWrite.All Gateway.Read.All Gateway.ReadWrite.All Report.Read.All Report.ReadWrite.All    StorageAccount.Read.All StorageAccount.ReadWrite.All租户.Read.All租户.ReadWrite.All    Workspace.Read.All Workspace.ReadWrite.All”,

[另外,请注意,我是PowerBI的普通用户。要使用API​​。我做了以下事情:

  • 使用客户端ID和密码创建了新应用

  • 设置API的正确权限

我未对PowerBI进行任何更改...我假设API权限已足够?

非常感谢指导。

powerbi powerbi-desktop powerbi-embedded
1个回答
0
投票

已解决。问题出在我使用的String.format函数。

© www.soinside.com 2019 - 2024. All rights reserved.