Как использовать OAuth2 с Restsharp для Lulu API - PullRequest
0 голосов
/ 11 июня 2018

Я пытаюсь научиться использовать новый API Lulu и застрял на авторизации OAuth2.Они дают образец в Curl, но я не знаком с ним.Я нашел ответ в предыдущей теме, но он, похоже, не работает для этого приложения.документацию по Lulu Api можно найти по адресу developers.lulu.com/public-docs, но за ней трудно следовать.У меня многолетний опыт работы с C # для настольных приложений, но я новичок в использовании Rest API или Oauth.

Это мой текущий код, сгенерированный из других вопросов и ответов по stackoverflow

var client = new RestClient($"https://api.sandbox.lulu.com/auth/realms/glasstree/ptotocol/openid connect");
string clientKeySecret=" Basic ZjJjNDdmMTctOWMxZi00ZWZlLWIzYzEtMDI4YTNlZTRjM2M3OjMzOTViZGU4LTBkMjQtNGQ0Ny1hYTRLWM4NGM3NjI0OGRiYw=='";
            var request = new RestRequest()
            {
                Method = Method.GET
            };
            request.AddParameter("grant_type", "client_credentials");
            request.AddHeader("Accept", "application/json");
            request.AddHeader("Content_Type", "application/x-www-form-urlencoded");
            request.AddHeader("Authorization", clientKeySecret);
            var response = client.Execute(request);
            var strJSONData = response.Content;

Когда язапустите его strJSONData является нулевым.

(пс. Переменная clientKeySecret не является реальной)

Вот что говорится в документации о том, как запросить токен:

Авторизация Lulu API использует OpenID Connectслой аутентификации, построенный поверх OAuth 2.0.Вместо обмена именем пользователя и паролем, API использует JSON Web Token (JWT) для авторизации клиентских запросов.

Для взаимодействия с API вам необходимы клиентский ключ и клиентский секрет.Откройте страницу «Ключи и секреты клиента», чтобы сгенерировать их.

Создание токена Для взаимодействия с API сначала необходимо сгенерировать токен OAuth.Для этого требуются следующие параметры:

client_key client_secret grant-type должен иметь значение client_credentials. Необходимо отправить запрос POST к конечной точке токена специальный заголовок авторизации.Для вашего удобства вы можете скопировать строку авторизации прямо со страницы ключей API:

curl -X POST https://api.lulu.com/auth/realms/glasstree/protocol/openid_connect/token \
  -d 'grant_type=client_credentials' \
  -H 'Content-Type: application/x-www-form-urlencoded' \
  -H 'Authorization:  Basic ZjJjNDdmMTctOWMxZi00ZWZlLWIzYzEtMDI4YTNlZTRjM2M3OjMzOTViZGU4LTBkMjQtNGQ0Ny1hYTRjLWM4NGM3NjI0OGRiYw=='
...