|
Помогите получить токен для дальнейшего пользования API | ☑ | ||
---|---|---|---|---|
0
location
naïve
22.12.21
✎
12:44
|
Авторизация приложения
Весь процесс выглядит следующим образом: 1 . Приложение запрашивает токен - отправляет HTTP-запрос методом POST по следующему адресу: https://allegro.pl/auth/oauth/token , где должно: укажите значение для типа доступа "grant_type = client_credentials" , включить заголовок авторизации в формате Basic base64 (client_id: client_secret) . ИнформацияОбязательно закодируйте строку «client_id: client_secret» вместе со знаком «:» между значениями. Пример curl -X POST \ 'https://allegro.pl.allegrosandbox.pl/auth/oauth/token?grant_type=client_credentials' \ -H 'Authorization: Basic base64(clientId:secret)' пишу такой код получаю ошибку {"error":"unauthorized","error_description":"There is no client authentication. Try adding an appropriate authentication filter."} ПараметрыURL = Новый Структура; АдресЗапроса = "https://allegro.pl.allegrosandbox.pl/auth/oauth/token"; //ПараметрыURL.Вставить("client_id",Объект.ClientID); //ПараметрыURL.Вставить("client_secret",Объект.ClientSecret); ПараметрыURL.Вставить("grant_type", "client_credentials"); АдресЗапроса = Адрес(АдресЗапроса, ПараметрыURL); СтруктураURI = ОбщегоНазначенияКлиентСервер.СтруктураURI(АдресЗапроса); HTTPСоединение = новый HTTPСоединение(СтруктураURI.Хост,,Объект.ClientID,Объект.ClientSecret,, , Новый ЗащищенноеСоединениеOpenSSL); headers = Новый Соответствие; headers.Вставить("Host", СтруктураURI.Хост); headers.Вставить("Content-Type", "application/vnd.allegro.public.v1+json"); headers.Вставить("Accept", "application/vnd.allegro.public.v1+json"); headers.Вставить("Authorization", "Basic base64(clientId:secret)"); HTTPЗапрос = Новый HTTPЗапрос(СтруктураURI.ПутьНаСервере, headers); //HTTPОтвет = HTTPСоединение.ОтправитьДляОбработки(HTTPЗапрос); HTTPОтвет = HTTPСоединение.Получить(HTTPЗапрос); Если использовать ОтправитьДляОбработки вместо Получить то получаю ошибку Internal Server Error |
|||
1
бомболюк
22.12.21
✎
12:53
|
"Basic base64(clientId:secret)"
что то думается мне от тебя ждут не этого, а "Basic " + base64(clientId + ":" + secret) |
|||
2
Мультук
гуру
22.12.21
✎
12:53
|
(0)
Я был взял готовую библиотеку https://github.com/vbondarevsky/Connector P.S. Сдается мне вот тут ты неправильно понял headers.Вставить("Authorization", "Basic base64(clientId:secret)"); |
|||
3
location
naïve
22.12.21
✎
13:05
|
(1) прописал так
headers.Вставить("Authorization", "Basic " + Base64Значение(Объект.ClientID + ":" + Объект.ClientSecret)); та же ошибка |
|||
4
Ёпрст
22.12.21
✎
13:08
|
(0) secret - это не строка - а твой секретный ключ для авторизации..подставь нужный и всё.
|
|||
5
Ёпрст
22.12.21
✎
13:09
|
(3) да ипа...ть
headers.Вставить("Authorization", "Basic " + Base64Значение("clientId:" + Объект.ClientSecret)); |
|||
6
pechkin
22.12.21
✎
13:10
|
нужно Base64Строка
|
|||
7
Ёпрст
22.12.21
✎
13:10
|
хотя не.. там да, и мд клиента и его секрет
|
|||
8
Kigo_Kigo
22.12.21
✎
13:14
|
Клиент ИД и секрет ключ, надо получить на сервере https://allegro.pl, возможно эти данные есть в личном кабинете
|
|||
9
location
naïve
22.12.21
✎
13:16
|
(8) у меня они получены
|
|||
10
location
naïve
22.12.21
✎
13:16
|
(6) выдает Неопределено
|
|||
11
location
naïve
22.12.21
✎
13:17
|
(9) на форме вставлены
|
|||
12
Kigo_Kigo
22.12.21
✎
13:17
|
(9) Попробуй СокрЛП(), может пробелы влетают
|
|||
13
pechkin
22.12.21
✎
13:18
|
||||
14
Kigo_Kigo
22.12.21
✎
13:18
|
отдчиком то что видишь
1111111:22222222 - ? |
|||
15
pechkin
22.12.21
✎
13:18
|
|
|||
16
youalex
22.12.21
✎
13:19
|
кодировку еще попробуй указать явно
headers.Вставить("Content-Type", "application/vnd.allegro.public.v1+json; charset=utf-8"); |
|||
17
location
naïve
22.12.21
✎
13:26
|
(15) добавил и указал (16)
получил такой ответ <html><body><h1>400 Bad request</h1> Your browser sent an invalid request. </body></html> |
|||
18
Ёпрст
22.12.21
✎
13:28
|
через curl то хоть работает твой запрос ?
|
|||
19
Ёпрст
22.12.21
✎
13:29
|
ну и вот это вот хрень
новый HTTPСоединение(СтруктураURI.Хост,,Объект.ClientID,Объект.ClientSecre |
|||
20
location
naïve
22.12.21
✎
13:31
|
(18) не знаю как им пользоваться.
через браузер работает, https://allegro.pl.allegrosandbox.pl/auth/oauth/token?grant_type=client_credentials ввожу ClientID и ClientSecret получаю токен |
|||
21
location
naïve
22.12.21
✎
13:32
|
(19) вот так HTTPСоединение = новый HTTPСоединение(СтруктураURI.Хост,443,,,, , Новый ЗащищенноеСоединениеOpenSSL);
выдает ту же картину |
|||
22
pechkin
22.12.21
✎
13:32
|
(20) попробуй здесь закодировать
https://www.base64decode.org/ |
|||
23
Ёпрст
22.12.21
✎
13:34
|
вот так, работает ?
|
|||
24
location
naïve
22.12.21
✎
13:38
|
(23) вот так выдает
<html><body><h1>400 Bad request</h1> Your browser sent an invalid request. </body></html> |
|||
25
youalex
22.12.21
✎
13:40
|
Там не Получить(HTTPЗапрос) а ОтправитьДляОбработки(HTTPЗапрос) т.е post
|
|||
26
location
naïve
22.12.21
✎
13:40
|
могу скинуть клиент ID и Secret мне не жалко тестовые данные
ID: 138a7e371a3546dc8a9f10df7185883e Secret: dHWawkVqaN9GEfNeOFYTTFLr0fgC5LOWgFnibRV99HYAeWgHvrpKgfgXojS3MEzJ |
|||
27
location
naïve
22.12.21
✎
13:41
|
вот если зайти через браузер то токен получается (26)
|
|||
28
Kigo_Kigo
22.12.21
✎
13:43
|
(23) СтрокаКодирования = СокрЛП(Объект.ClientID)+":" + СокрЛП(Объект.ClientSecret);
|
|||
29
location
naïve
22.12.21
✎
13:44
|
(28) да пробовал
|
|||
30
Kigo_Kigo
22.12.21
✎
13:45
|
(29) В 23 он "+" пропустил
|
|||
31
location
naïve
22.12.21
✎
13:46
|
(30) я видел
|
|||
32
youalex
22.12.21
✎
13:47
|
я постманом получил
|
|||
33
youalex
22.12.21
✎
13:58
|
Вот так работает, проверяй параметры
ПараметрыURL = Новый Структура; АдресЗапроса = "https://allegro.pl.allegrosandbox.pl/auth/oauth/token"; //ПараметрыURL.Вставить("client_id",Объект.ClientID); //ПараметрыURL.Вставить("client_secret",Объект.ClientSecret); ПараметрыURL.Вставить("grant_type", "client_credentials"); //АдресЗапроса = Адрес(АдресЗапроса, ПараметрыURL); //СтруктураURI = ОбщегоНазначенияКлиентСервер.СтруктураURI(АдресЗапроса); HTTPСоединение = новый HTTPСоединение("allegro.pl.allegrosandbox.pl", 443, , , , , Новый ЗащищенноеСоединениеOpenSSL); headers = Новый Соответствие; //headers.Вставить("Host", СтруктураURI.Хост); headers.Вставить("Content-Type", "application/vnd.allegro.public.v1+json"); headers.Вставить("Accept", "application/vnd.allegro.public.v1+json"); headers.Вставить("Authorization", "Basic MTM4YTdlMzcxYTM1NDZkYzhhOWYxMGRmNzE4NTg4M2U6ZEhXYXdrVnFhTjlHRWZOZU9GWVRURkxyMGZnQzVMT1dnRm5pYlJWOTlIWUFlV2dIdnJwS2dmZ1hvalMzTUV6Sg=="); HTTPЗапрос = Новый HTTPЗапрос("/auth/oauth/token?grant_type=client_credentials", headers); //HTTPОтвет = HTTPСоединение.ОтправитьДляОбработки(HTTPЗапрос); HTTPОтвет = HTTPСоединение.ОтправитьДляОбработки(HTTPЗапрос); |
|||
34
pechkin
22.12.21
✎
13:59
|
вот такой должен быть auth
|
|||
35
pechkin
22.12.21
✎
13:59
|
возможно 1с не добавляет == вконце
|
|||
36
timurhv
22.12.21
✎
14:06
|
(23) Без BOM надо:
СтрокаДанных = ДанныеАутентификации.Логин + ":" + ДанныеАутентификации.Пароль; ПотокВПамяти = Новый ПотокВПамяти(); Текст = Новый ЗаписьТекста(ПотокВПамяти, КодировкаТекста.UTF8, , Символы.ПС); Текст.Записать(СтрокаДанных); Текст.Закрыть(); ДвоичныеДанные = ПотокВПамяти.ЗакрытьИПолучитьДвоичныеДанные(); СтрокаФорматBase64 = Base64Строка(ДвоичныеДанные); СтрокаФорматBase64 = СтрЗаменить(СтрокаФорматBase64, Символы.ВК, ""); СтрокаФорматBase64 = СтрЗаменить(СтрокаФорматBase64, Символы.ПС, ""); |
|||
37
youalex
22.12.21
✎
14:10
|
Оно в 1С переводы строк добавляет зачем то, если делать как
Base64Строка(ПолучитьДвоичныеДанныеИзСтроки(ID + ":" + Secret)) |
|||
38
Ёпрст
22.12.21
✎
14:29
|
(37) ага, вот так работает
Авторизация ="Basic "+ Base64Строка(ПолучитьДвоичныеДанныеИзСтроки(ID + ":" + Secret)); Авторизация =СтрЗаменить(Авторизация,Символы.ПС,""); Авторизация =СтрЗаменить(Авторизация,Символы.ВК,""); |
|||
39
Ёпрст
22.12.21
✎
14:29
|
(36) а так не работает.. там не верная строка в конце
|
|||
40
Ёпрст
22.12.21
✎
14:32
|
(0) на вот..пригодится мот тоже когда-нибудь.. гребанный base64 строка мать его..
|
|||
41
location
naïve
22.12.21
✎
14:39
|
всем спасибо за помощь
|
|||
42
timurhv
22.12.21
✎
14:48
|
(39) типовое не работает o_O
|
|||
43
Ёпрст
22.12.21
✎
14:59
|
(42) ага, в конце не верные символы (
|
|||
44
timurhv
22.12.21
✎
15:04
|
(43) она вставлена в типовых и работает)
БизнесСеть.СтрокаBase64БезBOM ИнтеграцияСЯндексКассойСлужебный.СтрокаBase64БезBOM ОбменСБанкамиСлужебныйВызовСервера.СтрокаBase64БезBOM |
|||
45
Ёпрст
22.12.21
✎
15:06
|
(44) ага, ща копирнул как есть и ..тоже работает..
Гадство |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |