Ошибка клиента: `GET https://api.powerbi.com/v1.0/myorg/datasets` привела к ответу` 401 Unauthorized` Power BI REST api
Я пытаюсь использовать PHP (в частности, SDK, созданный касательными решениями: https://github.com/TangentSolutions/PowerBI-SDK-PHP/) для передачи данных в приложение Power BI (в ) Я работаю. Я могу получить токен доступа с помощью client_credentials и могу запускать тестовые вызовы API, которые Microsoft помещает в документацию, однако в моем приложении я постоянно получаю эту ошибку 401 Unauthorized, просто пытаясь запустить вызов API для получения наборов данных. Сейчас я тестирую вызовы наборов данных, но получаю такой же ответ и от других вызовов API. Я также могу получить токен доступа при запуске в Postman и получить ответ 200. Я правильно предоставил разрешения (насколько я могу судить) в AAD:
Я видел, как некоторые люди говорят использовать пароль как способ получения доступа, что я пробовал, но мне все равно возвращают 401 Unauthorized. Я бы предпочел использовать client_credentials, поэтому я бы не пошел по этому пути.
Я не добавлял какие-либо области в свое зарегистрированное приложение, потому что, честно говоря, это первый раз, когда я использую AAD, и я новичок в использовании API, поэтому я не совсем уверен, что это означает или что я хотел бы ввести в качестве объем. Я бы подумал, что отсутствие областей может быть проблемой, но опять же, я смог запустить тестовый вызов API из онлайн-документации Microsoft, что, я не уверен, указывает на то, что он должен работать для REST API.
Единственная другая проблема, о которой я могу думать, - это то, что я использую бесплатную учетную запись Power BI, и я не уверен, действительно ли мне нужна учетная запись Pro для ее создания. Я не смог найти прямого ответа по этому поводу, но если кто-нибудь знает, использует ли Power BI на https: //app.powerbi .comhttps://app.powerbi.com «встроенный REST API», то мне, возможно, просто нужно обновить мою учетную запись. Я пока не хотел обновлять свою учетную запись, если проблема в том, что мне не хватает чего-то еще.
1 ответ
Обычно ошибка 401 означает, что аудитория вашего токена не соответствует вашему API. Когда вы используете токен для вызова API, вы получите ошибку 401 неавторизованный доступ. Токен доступа выдается в зависимости от аудитории, поэтому вы должны обязательно установить
scope
к вашему API, когда вы запрашиваете токен. Конечно, вы также можете разобрать токен, проверьте
aud
претензии и убедитесь, что это API, который вы хотите вызвать.
Если вам нужно вызвать API-интерфейс службы Power BI, вы должны поставить
https://analysis.windows.net/powerbi/api/.default
в объеме.
Разобрать токен :