1С:Альфа-Авто: обмен с WordPress-сайтом. Часть 2. REST API. Авторизация

12.09.18

Интеграция - Сайты и интернет-магазины

Автоматический обмен данными между 1С:Альфа-Авто и сайтом WordPress в формате JSON. Авторизация и получение данных посредством REST API WordPress'a.

Скачать исходный код

Наименование Файл Версия Размер
1С:Альфа-Авто: обмен WordPress-сайтом. Часть 2. REST API. Авторизация.:
.epf 25,13Kb
13
.epf 25,13Kb 13 Скачать

Преамбула.

По моему скромному мнению, самым актуальным и перспективным форматом обмена данными в интернете является JSON, а механизм использующий его - REST API, который позволяет обмениваться данными в режиме реального времени. На текущий момент 1С не дает механизмов обмена данными с сайтом "онлайн", только через выгрузку-загрузку (поправьте, если не прав). По крайней мере перелопатив кучу информации в Интренете, почитав описания разных обработок для 1С по обмену с сайтом, ничего интересного и  связанного с REST API не нашел.

REST API.

Что это такое описывать не буду, информации в интернете много. В частности, что касается REST API WordPress, всё прочитанное в интернете оказалось, мягко говоря, устаревшим, даже в англоязычном сегменте. Даже описания разработчиков не "блещут". Самым трудным оказалась авторизация/аутентификация на сайте. Разработчики WordPress REST API расширяют и совершенствуют, а механизма авторизации/аутентификации нет. Приходилось пробовать сторонние плагины, которые в подовляющем большинстве тоже оказались устаревшими. Но, кто ищет, то всегда найдет. Этим найденным оказался плагин с аутентификацией по JWT (аутентификация с помощью JSON Web Token'а). Бесплатный, автор поддерживает и развивает, и самое главное его использование не составило большого труда.

Принцип работы.

Вашему вниманию предлагаю обработку, которая позволяет авторизоваться на сайте WordPress и получать данные с сайта посредством REST API в онлайн режиме. Огромная благодарность Александр Леонов (leongl) за его обработку Консоль HTTP-запросов с генерацией кода (ссылка), которая очень помогла и съэкономила мне кучу времени. В моей обработке процентов 80 кода взято оттуда.

***Внимание!! Данная обработка тестировалась на конфигурации 1С Альфа-Авто:Автосервис+Автосалон. Для работы с другими необходимо адаптировать!!!

***Для работы необходим сайт с HTTPS, простой HTTP работать не будет. Так как, по моему скромному мнению, HTTP уже давно не актуально, механизмы для авторизации устарели, да к тому же оказались намного сложнее.

  1. Аутентификация на сайте по JWT протоколу и получение токена. Требования: логин и пароль !! пользователя WordPress !! (рис.2)
  • На вкладке "Заголовки" (Headers) параметры заполняются автоматически.
  • На вкладке "Параметры Body" необходимо внести логин и пароль пользователя WordPress.
  • Заполните поле адрес сайта.

Нажать кнопку "Получить токен".

В случае успешной аутентификации заполняется поле "Текущий токен" и "Токен действителен до". Результат выполнения запроса можно посмотреть на вкладке "Запрос/результат" (рис.3). Прочитать ответ можно на вкладке "Объект JSON" нажав кнопку "Прочитать JSON_ответа".

Для получения данных от сайта введите строку запроса в формате REST API WordPress (или воспользуйтесь вкладкой "Типовые запросы РЕСТ АПИ") и нажмите кнопку "Послать запрос". Результат выполнения запроса можно посмотреть на вкладке "Запрос/результат" (рис.4). Прочитать ответ можно на вкладке "Объект JSON" нажав кнопку "Прочитать JSON_ответа".

2. Получение данных из WooCommerce. Требования: "пользовательский ключ" и "секретный код пользователя" WooCommerce !! (рис.5)

  • Получите токен согласно п.1.
  • Введите "пользовательский ключ" и "секретный код пользователя" WooCommerce в соответствующие поля.
  • Заполните поле адрес сайта.
  • Нажмите кнопку "Послать запрос".

 Результат выполнения запроса можно посмотреть на вкладке "Запрос/результат". Прочитать ответ можно на вкладке "Объект JSON" нажав кнопку "Прочитать JSON_ответа".

****Внимание!! Если в процессе расшифровки JSON на вкладке "Объект JSON" нажав кнопку "Прочитать JSON_ответа" получаете ошибку как на рисунке.

То знайте, формат ответа ПРАВИЛЬНЫЙ, это подтверждается онлайн декодерами в интернете, они всё правильно отображают. Проблема в 1С, она почему-то считает присланный формат неверным.

На вкладке "Дерево настроек" можно сохранить/восстановить настройки, что бы каждый раз не вводить логины/пароли заново.

Обработка делалась "под себя" и не является законченным решением, прошу не пинать за "правильность и красоту" кода 1С.

Резюме.

С помощью данной обработки мы получаем доступ из 1С Альфа-Авто в мир REST API WordPress. Дело осталось за малым, правильно читать ответы от сайта, ну и соответственно публиковать данные на сайте.

Тестировалось на моем сайте: перейти.

Версия WordPress : 4.9.8

Версия базы данных WooCommerce: 3.4.4

MySQL Версия : 5.6.39-83.1

PHP Версия : 7.1.18

Обработка тестировалась:

Платформа: 1С:Предприятие 8.3 (8.3.10.2639)

Конфигурации: Альфа-Авто: Автосалон+Автосервис+Автозапчасти ПРОФ, редакция 5.1.

Здравая критика приветствуется.

С удовольствием выслушаю предложения и пожелания.

обмена данными Альфа-Авто обмен с сайтом

См. также

API-интеграция 1С с маркетплейсами ОЗОН, WildBerries, Я.Маркет, СберМегаМаркет, Стройландия, Леруа Мерлен, Hoff, AliExpress для УТ11, КА2, ERP2, УНФ, БП3, Розница, УТ10, УПП1.3

Сайты и интернет-магазины Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Управление торговлей 10 1С:Розница 2 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Беларусь Россия Управленческий учет Платные (руб)

Модуль для интеграции с маркетплейсами ОЗОН, WildBerries, Я.Маркет, СберМегаМаркет, Стройландия, Леруа Мерлен, Hoff, AliExpress. При помощи расширения поддерживаются следующие методы: обмен остатками товаров, обмен ценами, обработка заказов, печать стикеров, загрузка отчетов комиссионеров по API (в том числе Я.Маркет). Подходит для конфигураций Беларуси. Поддержка искусственного интелекта GigaChat

59990 руб.

05.09.2023    8143    123    74    

78

Оплата покупок "Долями" в 1С:Розница 2.3 (для работы с сервисом dolyame.ru)

Сайты и интернет-магазины Платформа 1С v8.3 1С:Розница 2 Розничная и сетевая торговля (FMCG) Россия Платные (руб)

Готовое интеграционное решение для оплаты покупок Долями в 1C:Розница 2.3. Реализовано в виде расширения. Интеграция сервиса dolyame.ru для приема платежей в рассрочку.

18000 руб.

19.12.2023    1465    10    3    

7

Обмен данными с сайтом. БП 3.0

Оптовая торговля Розничная торговля Сайты и интернет-магазины Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Обмен данными с сайтом на платформе 1С:Битрикс (и подобными) для 1С: Бухгалтерия предприятия 3.0.

12000 руб.

18.03.2019    31483    110    100    

63

Интеграция 1С — Битрикс24. Обмен задачами

Сайты и интернет-магазины Интеграция WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Управленческий учет Платные (руб)

Интеграция 1С и Битрикс24. Разработка имеет двухстороннюю синхронизацию 1С и Битрикс24 задачами. Решение позволяет создавать пользователя в 1С из Битрикс24 и наоборот. Данная разработка технически подходит под все основные конфигурации линейки продуктов 1С:Предприятие 8.3 (8.3.18.1289). При приобретении предоставляется 1 месяц бесплатных обновлений разработки. Доступна демо-версия продукта с подключением Вашего Битрикс24

5040 руб.

04.05.2021    17854    6    15    

13

Универсальный парсер интернет-магазинов

Оптовая торговля Розничная торговля Сайты и интернет-магазины Платформа 1С v8.3 Управляемые формы 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Управленческий учет Платные (руб)

С того времени, как я начал парсить сайты, прошло много лет. За это время я спарсил более 100 сайтов и записал эти товары в 1С. В итоге на свет появился универсальный парсер, который поможет Вам спарсить интернет-магазин и при этом не написать ни строчки кода.

9600 руб.

19.10.2018    52153    220    99    

111

Выгрузка для АВИТО

Сайты и интернет-магазины Платформа 1С v8.3 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Управление торговлей 11 Россия Платные (руб)

Выгрузка товаров услуг из 1С для сайта "Авито" раздел "Автозагрузка" выполнена в виде обработки. Обработка подходит для конфигураций УТ, УНФ и Розница. Данная обработка позволяет создавать шаблон с объявлениями для "Авито" - "Автозагрузка".

4200 руб.

07.06.2022    15603    42    56    

37
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Timur.V 78 12.09.18 15:04 Сейчас в теме
На текущий момент 1С не дает механизмов обмена данными с сайтом "онлайн", только через выгрузку-загрузку (поправьте, если не прав).

Можно на стороне сайта сделать http-сервис
и из 1с обращаться к нему (1с битрикс - совсем не обязателен)

Из не совсем правильных способов, можно подключиться к базе mysql и писать сразу в таблицы.
+
2. osivv 265 12.09.18 15:49 Сейчас в теме
Это и есть REST API. Моей целью является создание обработки без вмешательства в конфигурации 1С и механизмы сайта, использующие штатные/типовые механизмы и той и другой стороны.
+
3. Alien_job 190 12.09.18 19:02 Сейчас в теме
"Проблема в 1С, она почему-то считает присланный формат неверным" - при чтении json можно указать чтобы он парсился не в структуру а в соответствие. Эта ошибка уйдет.
1С не считает формат неверным а считает что нельзя в ключе структуры использовать двоеточие ( "wp:post_type" ), о чем явно пишет
+
4. osivv 265 13.09.18 09:35 Сейчас в теме
Спасибо за совет, воспользуюсь.
+
5. compreSSor 10 08.10.18 23:32 Сейчас в теме
при открытии обработки выдаёт:

{ВнешняяОбработка.RestAPI_Соединение.Форма.Форма.Форма(595,35)}: Процедура или функция с указанным именем не определена (СтрНайти)
СтрокаBase64Строка=Лев(Строка1, <<?>>СтрНайти(Строка1,Символы.вк)-1)+СтрРазделить(Строка1,Символы.ПС,)[1];
{ВнешняяОбработка.RestAPI_Соединение.Форма.Форма.Форма(595,67)}: Процедура или функция с указанным именем не определена (СтрРазделить)
СтрокаBase64Строка=Лев(Строка1, СтрНайти(Строка1,Символы.вк)-1)+<<?>>СтрРазделить(Строка1,Символы.ПС,)[1];

вроде как ничего страшного, но нет этих 2-х функций
+
6. compreSSor 10 09.10.18 00:23 Сейчас в теме
а вот теперь прочитал описание и понял - код этих 2-х функций - в студию ))
+
7. osivv 265 09.10.18 22:48 Сейчас в теме
Здравствуйте, это функции из встроенных 1С, замена устаревшей Найти, поиск подстроки в строке, можно смело заменить СтрНайти на Найти.
1С почему-то кодирует в Base64 с переводом строки, а нужна целая строка, поэтому приходится склеивать.
+
8. compreSSor 10 10.10.18 11:02 Сейчас в теме
9. BotMan4 15 08.04.19 22:58 Сейчас в теме
***Для работы необходим сайт с HTTPS, простой HTTP работать не будет. Так как, по моему скромному мнению, HTTP уже давно не актуально, механизмы для авторизации устарели, да к тому же оказались намного сложнее.


Будет работать без всяких проблем и заморочек, если установить плагин "Basic-Auth-master"
Прикрепленные файлы:
Basic-Auth-master.zip
+
Внимание! Тема сдана в архив