Как получить AccessToken от Api Orange Message

Мне нужно знать, как получить токен доступа от Orange Message Api . Я написал функцию, которая должна сделать это, но, похоже, содержит ошибку. он возвращает исключение [Удаленный сервер возвратил ошибочный запрос errro 400] . я не знаю что не так

 class MessageApi
{

    public  void GetAccessToken()
    {
        string AuthHeader = "My Authorization header";
        HttpWebRequest requeust = (HttpWebRequest)WebRequest.Create("https://api.orange.com/oauth/v2/token");
        requeust.ContentType = "application/json";
        requeust.Method = "POST";
        JsonObject JsonData = new JsonObject();
        JsonData["authorization"] = AuthHeader;
        JsonData["grant_type"] = "client_credentials";

        using (var streamWriter = new StreamWriter(requeust.GetRequestStream()))
        {

            streamWriter.Write(JsonData);

        }
        var httpResponse = (HttpWebResponse)requeust.GetResponse();
        using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
        {
            var result = streamReader.ReadToEnd();
        }

    }
}

1 ответ

Заголовок авторизации должен быть в заголовке запроса.

Вместо того чтобы делать

JsonData["authorization"] = AuthHeader;

пытаться

requeust.Headers["Authorization"] = AuthHeader;

Сделайтеэто сначала: client_id и client_secret используются для указания authorization_header. Его значение состоит из ключевого слова "Basic", за которым следуют пробел и кодировка base64 для конкатенации вашего client_id, ":" и вашего client_secret

Вам нужно конвертировать в base64 ваш client_id: client_secret на этом сайте: base64 encode

пример:

client_id = djdv6 + 4fb64b + 6fd + 6b

client_secret = 3464ggb646

concated = djdv6 + 4fb64b + 6fd + 6b: 3464ggb646

djdv6 + 4fb64b + 6fd + 6b: 3464ggb646 == d64b6b464b6g4bg65465gn6n ==

После этого:

curl -X POST -H "Authorization: Basic myBase64Encode" -d "grant_type=client_credentials" https://api.orange.com/oauth/v2/token

замените myBase64Encode на ваш составной clientId и clientSecret, преобразованные в base 64 ==> d64b6b464b6g4bg65465gn6n==

Другие вопросы по тегам