Невозможно обменять код авторизации на токен доступа на eBay.C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Невозможно обменять код авторизации на токен доступа на eBay.

Сообщение Anonymous »

Я интегрирую OAuth API eBay в свое приложение C# для создания токена доступа путем обмена кодом_авторизации.
Однако во время обмена токеном я получаю следующую ошибку:
{
"error": "invalid_grant",
"error_description": "the provided authorization grant code is invalid or was issued to another client"
}

Текущая реализация
  • Создание URL-адреса авторизации

    Я генерирую URL-адрес для перенаправления пользователей на страницу входа на eBay для получения согласия. После того как пользователь входит в систему и дает согласие, eBay предоставляет код авторизации.

    Вот как я генерирую URL-адрес и предлагаю пользователям посетить его вручную:

    string authCodeUrl = BuildAuthorizationUrl();
    Console.WriteLine($"Please visit this URL to provide consent: {authCodeUrl}");
    System.Diagnostics.Process.Start(new System.Diagnostics.ProcessStartInfo
    {
    FileName = authCodeUrl,
    UseShellExecute = true
    });
  • Обмен кода авторизации на токен доступа

    После того, как пользователь вручную вводит код авторизации в консоли я использую следующий метод для обмена его на access_token:
public async Task GetAccessTokenAsync(string authorizationCode)
{
string tokenUrl = "https://api.sandbox.ebay.com/identity/v1/oauth2/token";
string clientId = "";
string clientSecret = "";
string redirectUri = "http://localhost:8080/"; // Must match the redirect URI in eBay app settings

using (var client = new HttpClient())
{
var authHeader = Convert.ToBase64String(Encoding.ASCII.GetBytes($"{clientId}:{clientSecret}"));
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", authHeader);

var parameters = new Dictionary
{
{ "grant_type", "authorization_code" },
{ "code", authorizationCode },
{ "redirect_uri", redirectUri }
};

var content = new FormUrlEncodedContent(parameters);
var response = await client.PostAsync(tokenUrl, content);

string responseBody = await response.Content.ReadAsStringAsync();

if (!response.IsSuccessStatusCode)
{
Console.WriteLine($"Error: {responseBody}");
throw new Exception($"Error retrieving the access token. Response: {responseBody}");
}

var tokenResponse = JsonConvert.DeserializeObject(responseBody);
return tokenResponse.access_token;
}
}

Проблема: когда я вызываю GetAccessTokenAsync, я постоянно получаю ошибку valid_grant.
Ожидаемый результат: успешный ответ, подобный следующему:
{
"access_token": "v^1.1#i^1#p^3#r^1...XzMjRV4xMjg0",
"expires_in": 7200,
"refresh_token": "v^1.1#i^1#p^3#r^1...zYjRV4xMjg0",
"refresh_token_expires_in": 47304000,
"token_type": "User Access Token"
}


Подробнее здесь: https://stackoverflow.com/questions/792 ... en-in-ebay
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Невозможно обменять код авторизации на токен доступа на eBay
    Anonymous » » в форуме Php
    0 Ответы
    40 Просмотры
    Последнее сообщение Anonymous
  • Невозможно обменять код авторизации на токен доступа на eBay
    Anonymous » » в форуме Php
    0 Ответы
    46 Просмотры
    Последнее сообщение Anonymous
  • Невозможно обменять код авторизации для доступа к токену на eBay
    Anonymous » » в форуме C#
    0 Ответы
    17 Просмотры
    Последнее сообщение Anonymous
  • Ошибка dj_rest_auth SocialLoginView «Не удалось обменять код на токен доступа»
    Anonymous » » в форуме Python
    0 Ответы
    30 Просмотры
    Последнее сообщение Anonymous
  • Ошибка dj_rest_auth SocialLoginView «Не удалось обменять код на токен доступа»
    Anonymous » » в форуме Python
    0 Ответы
    23 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»