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

12.09.18

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

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

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
1С:Альфа-Авто: обмен WordPress-сайтом. Часть 2. REST API. Авторизация.:
.epf 25,13Kb
14
14 Скачать (3 SM) Купить за 2 450 руб.

Преамбула.

По моему скромному мнению, самым актуальным и перспективным форматом обмена данными в интернете является 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.

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

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

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

См. также

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

Готовое интеграционное решение для оплаты покупок Долями в 1C:Розница 2.3. Реализовано в виде расширения. Интеграция сервиса dolyame.ru для приема платежей в рассрочку. Поддерживает работу от разных юридических лиц. Работа: в составе РИБ, отдельно от РИБ, тонкий, толстый клиент, web-клиент (через интернет-браузер).

22440 руб.

19.12.2023    5657    40    11    

37

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

Интеграционный модуль обмена между конфигурацией Альфа Авто 5 и Альфа Авто 6 и порталом AUTOCRM. Данный модуль универсален. Позволяет работать с несколькими обменами AUTOCRM разных брендов в одной информационной базе в ручном и автоматическом режиме.

36000 руб.

03.08.2020    18101    19    22    

17

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

Интеграция 1С и Битрикс 24. Разработка имеет двухстороннюю синхронизацию 1С и Bitrix24 задачами. Решение позволяет создавать пользователя в 1С из Битрикс24 и наоборот. Данная разработка технически подходит под все основные конфигурации линейки продуктов 1С:Предприятие 8.3 (платформа начиная с 8.3.23): 1С:Управление торговлей, 1С:Управление Нашей фирмой 3, 1С:Комплексная автоматизация 2, Объединенное решение: Модуль 1С:CRM 3 (3.0.21.3) +1С:ERP Управление предприятием 2. При приобретении предоставляется 1 месяц бесплатных обновлений разработки. Доступна демо-версия продукта с подключением Вашего Битрикс24

7200 руб.

04.05.2021    20275    13    19    

18

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

Программа позволяет одним кликом настроить сбор цен ваших конкурентов или дилеров в интернете. Автоматически собирает данные результата поиска Яндекса (вам не придется вручную добавлять каждый сайт, за которым нужно следить). Обновление цен происходит по заданному вами расписанию автоматически. Можете легко отслеживать позиции вашего сайта в Яндексе по ключевым словам и фразам. Этот инструмент даст вам лучшее понимание того, как ваша SEO-стратегия влияет на видимость вашего сайта в поисковой выдаче, и поможет вам улучшить контент и структуру сайта для повышения его позиций. Функция доступна во всех тарифах.

19950 руб.

23.09.2019    31128    7    12    

30

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

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

4200 руб.

07.06.2022    17960    41    56    

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

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

Из не совсем правильных способов, можно подключиться к базе mysql и писать сразу в таблицы.
2. osivv 270 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 270 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 270 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
Оставьте свое сообщение