Tandem Power BI Connector

问题描述 投票:0回答:1
我正在尝试为Power BI创建一个连接器,以从Autodesk Tandem获取(资产)数据。虽然ConnectOrtest.models成功返回了设施ID中的模型,但表明身份验证有效,ConnectorTest.sets需要相同的令牌失败。 Power BI中的错误消息: 我们无法使用所提供的凭据进行身份验证。请再试一次

GetFacilityModels = (baseUrl as text, twinId as text, accessToken as text) as list => let url = baseUrl & "/twins/" & twinId, response = Web.Contents(url, [Headers = [#"Authorization" = "Bearer " & accessToken]]), data = Json.Document(response), models = data[links], result = List.Transform(models, each Record.Field(_, "modelId")) in result; // Function to process model assets GetModelAssets = (baseUrl as text, urn as text, accessToken as text) => let // Define the endpoint URL url = baseUrl & "/modeldata/" & urn & "/scan", input = "{""families"": [ ""n"", ""z"" ], ""includeHistory"": false, ""skipArrays"":true}", response = Web.Contents( url, [ Headers = [#"Content-Type"="application/json"], Content = Text.ToBinary(input) ] ), // Parse the JSON response data = Json.Document(response), result = data in result; data; // Function to combine all assets into a table GetAssetsTable = (baseUrl as text, twinId as text, accessToken as text) => let modelList = GetFacilityModels(baseUrl, twinId, accessToken), assetList = List.Transform(modelList, each GetModelAssets(baseUrl, _, accessToken)), validTables = List.RemoveNulls(assetList), result = Table.Combine(validTables) in result; // Helper function to check if an item is an asset _IsAsset = (item as record) => let isAsset = Record.HasFields(item, {"n:n", "n:!n"}) in isAsset; // Function to retrieve model list [DataSource.Kind="connectortest", Publish="connectortest.Models.Publish"] shared connectortest.Models = () => let baseUrl = "https://developer.api.autodesk.com/tandem/v1", twinID = "urn:adsk.dtt:uSyCHvt1QmakLrZ8g4NSdg", tokenResponse = GetAccessToken(), accessToken = tokenResponse[access_token], modelList = GetFacilityModels(baseUrl, twinID, accessToken) in modelList; // Function to retrieve asset list [DataSource.Kind="connectortest", Publish="connectortest.Assets.Publish"] shared connectortest.Assets = () => let baseUrl = "https://developer.api.autodesk.com/tandem/v1", modelID2 = "urn:adsk.dtm:iXzvRVKqQL6q0WYL01oKgA", tokenResponse = GetAccessToken(), accessToken = tokenResponse[access_token], assetList = GetModelAssets(baseUrl, modelID2, accessToken) in assetList; // Data Source Kind description connectortest = [ Authentication = [ Anonymous = [] // No login UI needed for 2-legged token ] ];

	
authentication powerbi connector autodesk-tandem
1个回答
0
投票
Authorization

函数中缺少有效令牌的标头:

GetModelAssets
需要对串联REST API进行认证 - 请参见
Herey

	

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.