Получение неверного запроса об отсутствии параметра 'grant_type', даже если это часть моего тела запроса - PullRequest
0 голосов
/ 14 января 2020

Я попытался получить токен доступа для API PowerBI с помощью следующего метода и правильных входных данных для clientId, clientSecret, имени пользователя и пароля, но я получил неверный запрос, сообщив, что обязательный параметр 'grant_type' отсутствует.

public static async Task<string> GetToken()
{   ​   
    var client = new RestClient();
​
    var url = "https://login.microsoftonline.com/common/oauth2/token"
    var request = new RestRequest(url, Method.POST, DataFormat.Json);
​
    var body = new
    {
        grant_type = "password",
        client_id = "clientId",
        client_secret = "clientSecret",
        username = "user",
        password = "password",
        resource = "https://analysis.windows.net/powerbi/api"
    };
​
    request.AddJsonBody(body);
​
    var response = await client.ExecutePostAsync(request);
    return response.Content;
}

Что-то не так с JSON телом или что-то совершенно другое?

1 Ответ

1 голос
/ 14 января 2020

Тело вашего запроса должно быть закодировано в форме URL, а не json

Если вы используете C#, я бы рекомендовал использовать библиотеку Identity Model , чтобы уменьшить количество ошибок.

Вот пример кода

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...