2015-09-09 2 views
1

Эй, ребята, я пытаюсь вызвать API REST Docebo, и мне трудно понять, как это работает. В принципе, для вызова API требуется указать параметр X-Authorization Parameter в заголовке запроса. Документация Docebo по ее реализации - это просто абзац, который очень запутан для чтения. Аналогичный вопрос был задан и ответил здесь:Docebo X-Authorization parameter

Docebo - constructing authorisation header

Я прочитал код, но не мог понять, как объяснение было мало, и код очень трудно для меня, чтобы понять. У меня есть два вопроса:

1) Что такое параметр X-Authorization?

2) Как вычислить параметр X-Authorization для добавления в заголовок запроса для вызовов в Docebo API?

Подробное объяснение того, как работает код, будет замечательным! Заранее спасибо!

ответ

2

Эй, я, наконец, понял это.

Что такое параметр X-Authorization?

Это параметр, который необходимо добавить в заголовок запроса. Этот заголовок используется для аутентификации вызова API, и сначала сервер проверяет этот параметр, чтобы узнать, поступает ли вызов из надежного источника. Такие запросы, у которых есть пользовательские заголовки X, называются запросами с предварительным полетом, которые требуют от отправителя сначала отправить запрос HTTP OPTIONS. Сервер отвечает списком разрешенных действий, которые могут быть выполнены. Только если исходному (отправителю) разрешено иметь определенный заголовок/иметь доступ к ресурсам сервера, запрос фактически выполняется.

Как вычислить параметр X-Authorization для добавления в заголовок запроса для вызова Docebo API?

Это выглядит следующим образом: Сначала рассмотрите документацию по API Docebo API для конкретного API, который вы хотите вызвать. Он будет иметь список параметров, которые требуют вызова. Затем вам нужно иметь ключи API из docebo, так как оба они используются для создания этого параметра X-Authorization. Затем выполните следующие действия:

1) Предположим, у вас есть n параметров, которые требуют вызова. : SHA1 кодирование следующей строки между скобками - (param-1, param-2, param-3 ..... param-n, secretKey). Не забывайте запятые! Возьмите хэш-код SHA1, сгенерированный на этом этапе, и перейдите к шагу 2

2) Кодирование UTF-8 base64 следующей строки между скобками - (PublicKey: хэш с шага 1). Не забывайте, что двоеточие! и вы получите буквенно-цифровую строку.

3) Параметр X-Authorization - код Docebo (обратите внимание на пространство между Docebo и кодом).

4) Добавьте параметр с именем X-Authorization в заголовок запроса перед его отправкой, и вы получите ответ.

Надеюсь, что это поможет.