Ошибка 401 Power BI API - PullRequest
       8

Ошибка 401 Power BI API

0 голосов
/ 28 августа 2018

Я пытаюсь обойти историю обновления Power BI, но я получаю возврат 401, я уже освободил все разрешения для приложения. Я могу сгенерировать токен нормально, но когда я пытаюсь получить группы, я получаю «Несанкционированный доступ», у вас есть идея, что мне нужно проверить?

мой код

getData("https://api.powerbi.com/v1.0/myorg/groups").ToString

Public Function getToken() As String
        Dim objs As RootObject

        Dim cliente = New RestClient("https://login.microsoftonline.com/00000000/oauth2/token")
        Dim req = New RestRequest()

        req.Method = Method.POST
        req.Parameters.Clear()
        req.AddHeader("Content-Type", "application/x-www-form-urlencoded")
        req.AddParameter("grant_type", "client_credentials", ParameterType.GetOrPost)
        req.AddParameter("client_id", "0000000", ParameterType.GetOrPost)
        req.AddParameter("client_secret", "000000", ParameterType.GetOrPost)
        req.AddParameter("resource", "https://analysis.windows.net/powerbi/api", ParameterType.GetOrPost)



        Dim resposta = cliente.Execute(req)
        Dim content = resposta.Content.ToString
        objs = JsonConvert.DeserializeObject(Of RootObject)(content.ToString)
        Dim token = objs.access_token
        Return (token.ToString)
    End Function


Private Function getData(ByVal url As String) As String
        Dim powerBIApiUrl As String = url
        Dim token As String = getToken()
        Dim request As HttpWebRequest = TryCast(System.Net.WebRequest.Create(powerBIApiUrl), System.Net.HttpWebRequest)
        request.KeepAlive = True
        request.Method = "GET"
        request.ContentLength = 0
        request.ContentType = "application/json; charset=utf-8"

        request.Headers.Add("Authorization", String.Format("Bearer {0}", token))

        Using httpResponse As HttpWebResponse = TryCast(request.GetResponse(), System.Net.HttpWebResponse)

            Using reader As StreamReader = New System.IO.StreamReader(httpResponse.GetResponseStream())
                Dim responseContent As String = reader.ReadToEnd()

                Return responseContent.ToString
            End Using
        End Using
    End Function
...