yury_finkel (yury_finkel) wrote,
yury_finkel
yury_finkel

о работе

Сегодня у меня на работе большая удача: я нашёл решение проблемы, которое искал уже давно (пару месяцев, но, конечно, с большими перерывами на другие задачи, так что если мерять в чистом времени, то, наверное, несколько дней). Это касается Битрикса, поэтому напишу здесь решение, чтобы товарищи по несчастью могли найти это в интернете.

В общем, задача стояла такая: нужно написать скрипты, делающие что-то с облачным Битрикс24 (например, заливали бы туда некую информацию из базы данных), причём эти скрипты должны вызываться из командной строки, чтобы можно было прописать их в cron'е.

Я долго пытался разобраться с авторизацией Битрикса, но пришёл к выводу, что вне браузера и без человеческого участия авторизоваться в скрипте невозможно: в процессе авторизации несколько раз происходит редирект, в том числе на сервер авторизации Битрикса, где в конечном счёте нужно ввести логин-пароль и клацнуть кнопку "войти", да ещё запоминать куки, в полностью автоматическом скрипте вне браузера мне воспроизвести этот процесс не удалось. Это называется протокол OAuth, кажется, и разработан он, видимо, специально чтобы избежать автоматического входа из скрипта (даже если скрипт знает логин и пароль). Поэтому никак не удавалось сделать скрипт, работающий без человеческого участия.

Решение оказалось совершенно простым, но я потратил кучу времени, чтобы его найти, т.к. в документации Битрикса ни черта найти нельзя.

Читаем здесь: https://helpdesk.bitrix24.ru/open/5408147/

Ключевое слово — входящий вебхук. Просто нужно создать его в "Приложениях", сервер выдаст код авторизации и образец url для вызова функций API. Далее в скрипте безо всякой авторизации делается вызов нужных функций с использованием этого кода авторизации (через url по выданному образцу), и всё. Там на странице есть даже примерчик кода. Правда, как и всё у Битрикса, этот пример надо ещё привести в божеский вид (отформатировать, чтобы можно было его хотя бы прочитать) и кое-что исправить (как минимум одна синтаксическая ошибка там есть) — такое ощущение, что битриксовцы специально затрудняют доступ к информации, обфусцируют её, чтобы не каждый простой человек смог до неё добраться).
Tags: программазм, работа, технические детали
Subscribe

  • Jurij German. «Rusio juna». 1.4.3

    3. Sentimas li troe! Tuj kiam ili preteris la monaĥejajn butikojn kaj eliris al la Trinitata korto de la Sija monaĥejo de sankta Antonio, kiu…

  • Jurij German. «Rusio juna». 1.4.2

    2. Batu senkompate, ĝis li krios! Sinjoro James akumuladis monon por akiri licencon pri militista rango en sia angla reĝlando. Por tio li devis…

  • Jurij German. «Rusio juna». 1.4.1

    Mensog' sur lang' de malamik', Dum mano pri malam' alarmas, En buŝo nur vantaĵoj svarmas... Lomonosov Ne amu jesanton — amu…

  • Post a new comment

    Error

    Comments allowed for friends only

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 0 comments