powerbi api 始终返回 NotFound



我正在使用powerbiapi直接调用powerbi。 我已成功进行身份验证,可以成功调用以获取所有数据集

var datasets = await _powerBiClient.Datasets.GetDatasetsAsync(_config.GroupId);

它返回我进行身份验证的用户可以访问的所有数据集。

但是,当我拨打任何其他远离上面列出的电话时,我得到了一个NotFound例外。

var d = await _powerBiClient.Datasets.GetDatasetByIdAsync(_config.GroupId,datasetKey);

var d = await _powerBiClient.Datasets.GetDatasetByIdAsync(datasetKey);

var r = await _powerBiClient.Datasets.PostRowsAsync(_config.GroupId,getIdResult.Result, tableName,rows);

我什至尝试绕过 api 并直接通过 webrequest 进行调用

string powerBIApiAddRowsUrl = String.Format("https://api.powerbi.com/v1.0/myorg/datasets/{0}/tables/{1}/rows", getIdResult, tableName);
//POST web request to add rows.
//To add rows to a dataset in a group, use the Groups uri: https://api.powerbi.com/v1.0/myorg/groups/{group_id}/datasets/{dataset_id}/tables/{table_name}/rows
//Change request method to "POST"
HttpWebRequest request = System.Net.WebRequest.Create(powerBIApiAddRowsUrl) as System.Net.HttpWebRequest;
request.KeepAlive = true;
    request.Method = "POST";
    request.ContentLength = 0;
    request.ContentType = "application/json";

这也抛出了NotFound例外。

查看 PowerBi 文档,我最初将 datasetKey 作为数据集的名称(即"数据集样本"(传入,我切换到传入 Id,就像文档中的 url 示例一样,我仍然得到一个NotFound

有人可以让我深入了解问题所在吗?

NotFound 表示您提供的数据集不存在于您提供的组中。 DatasetId 和 GroupId 都应该是 GUID。您可以使用 GET 请求或您拥有的_powerBIClient获取数据集 ID 和组 ID。

GET /v1.0/myorg/groups
GET /v1.0/myorg/groups/<group id>/datasets
GET /v1.0/myorg/groups/<group id>/datasets/<dataset id>
using powerBIClient:
powerBIClient.Datasets.GetDatasetByIdAsync(groupId, datasetId)

请注意,如果您的数据集位于"我的工作区"中,则 API 会有所不同。 对于这种情况,API 是:

GET /v1.0/myorg/datasets
GET /v1.0/myorg/datasets/<dataset Id>
using powerBIClient:
powerBIClient.Datasets.GetDatasetByIdAsync(datasetId)

为了进行验证,您始终可以使用 powerbi.com 中的 URL 提取组 ID 和数据集 ID。 只需尝试从数据集创建报表并查看浏览器 URL。

如果上述方法对您不起作用,请使用_powerBIClient,打开提琴手并捕获传出请求,然后将其粘贴到此处(当然没有授权标头(。

最新更新