Обработка для обновления публикаций на Инфостарте (Управляемая форма)


Вы уже публиковались на сайте? Тогда это обработка для вас.

В недавнем прошлом сайт Инфостарт нас обрадовал новым и осовремененным редактором публикаций, вместе с ним появилась такая интересная штука, как «Api ссылка для обновления». 

Что же это за зверь такой? Данная вещь позволяет обновлять файл вашей публикации с помощью HTTP запросов программно. К сожалению до сего момента внятного описания, и нормальной инструкции по данной фиче не было, пока наконец нас не осчастливили обработкой-примером, в котором демонстрировались возможности данного api.

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

Как же все-таки использовать данный функционал? Во-первых, необходимо получить api ссылку вашего файла, у каждого файла она своя, если у вас в публикации 5 файлов, то, значит, будет 5 ссылок. Зайдите в редактор вашей публикации, внизу под нужным файлом будет ссылка.

Вставляем ссылку в поле api url, выбираем, необходимо ли вам обновлять также версию файла. Выбираем как обновить публикацию через файл, для этого необходимо будет выбрать файл у вас на компьютере, либо указав ссылку, тогда Инфостарт самостоятельно скачает ее из интернета, поддерживает только прямые ссылки (т.е. не ссылки например яндекс диска). Нажимаем «Обновить», если прошло все успешно, то программа сообщит Success.

Пример

Обновлено 09.08.2025

Добавил возможность обновлять ссылку api без обновления файла публикации. (параметр «nh»)

Исправил работу защищенного соединеиня, теперь чтобы публикация была обновлена при нем, поменяйте в своей ссылке http на https.

26 Comments

  1. dk

    UPD: Ссылка теперь не обновляется при каждом запросе (это был баг), hash остается неизменным. Если необходимо обновить hash ссылки, то нужно передать параметр nh=1, пример:

    http://infostart.ru/public/edit/?a=s&f=FILE_ID&h=HASH_CODE&lnk=PATH_TO_IMAGE&nh=1

    В ответ придет тот же JSON, только на этот раз с NEW_API_LINK в котором собственно будет новая ссылка.

    Также прошу обратить внимание, что параметр nh=1 можно использовать и без отправки самого файла.

    пример:

    http://infostart.ru/public/edit/?a=s&f=FILE_ID&h=HASH_CODE&nh=1

    В этом случае меняется только ссылка и прилетает ответом в формате JSON в поле NEW_API_LINK.

    Если есть вопросы или предложения по работе API — ссылок, буду рад их выслушать =)

    Reply
  2. karpik666

    (1) dk, сейчас тогда публикацию переделаю с новыми параметрами. Вообще в идеале хочется видеть, что отправляешь запрос на публикацию, а тебе в ответ какие файлы там есть, какого они размера и какие на них ссылки, плюс убрать возможность без указания пароля пользователя обновлять файл по api ссылке, а то какая-то дыра в безопасности.

    Reply
  3. dk

    (2) Список файлов — интересная идея, реализуем такой функционал в будущем.

    Касаемо авторизации по логину/паролю получается наоборот, если вы их будете хранить в настройках своей обработки, то вы фактически дарите полный доступ к своему аккаунту для 1С. Приведу простой пример.

    1) Имеем вашу обработку на машине А, в ней вы указываете ссылку на обновление файла АА

    2) Имеем вашу обработку на машине Б, в ней вы указываете ссылку на обновление файла ББ

    3) Имеем вашу учетку с полным доступом ко всем публикациям.

    Пример, вы захотели лишить права обновления машину А, для этого вам достаточно сделать обновление hash-кода в публикации, доступ у машины А мгновенно теряется, у машины Б остается. В случае с логином/паролем вы отбираете доступ у машины А и Б.

    Так же по вашей схеме, у машины А и Б есть доступ к вашему аккаунту с возможностью тратить ваши $m и руб, что не есть хорошо.

    Если боитесь, что кто-то перехватит ваш hash — пользуйте ssl и обновляйтесь так:

    https://infostart.ru/public/edit/?a=s&f=FILE_ID&h=HASH_CODE&lnk=PATH_TO_IMAGE

    Ну и если совсем страшно, то можно менять hash при каждом обновлении или раз в n-секунд =)

    Reply
  4. karpik666

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

    Reply
  5. dk

    (4) Мухи отдельно, котлеты отдельно =)

    Вопрос про безопасность:

    плюс убрать возможность без указания пароля пользователя обновлять файл по api ссылке, а то какая-то дыра в безопасности.

    Ответ на него был выше, плюс добавлю, что связка FILE_ID и HASH аналогична связке LOGIN и PASS, только в первом случае на доступы еще и наложены ограничения в области их применения, что само собой безопаснее, чем LOGIN и PASS

    в данном случае вы предполагаете, что разработку ведет какая-то команда человек, которая имеет только доступ к обновлению одной публикации из многих, тогда такой вариант оправдан

    Не совсем, тут упор сделан на безопасность, удобство и гибкость.

    Я же предполагал, что это будет что-то типо программного аналога личного кабинета: т.е. ты заходишь в обработку, указываешь свой логин и пароль, и входишь на сайт, с одной стороны у тебя список твоих публикаций, нажимаешь на него открывается окно в котором можно обновить текст публикации, обновить файлы, либо дополнительную информацию, и все это не заходя на сайт, либо еще один вариант: ты указываешь адрес публикации, которую ты хочешь скачать, а тебе в ответ приходит ее версия и дата последнего обновления, и ты можешь сравнить с тем, что ты уже скачал.

    Это по большей части описание вашей клиентской стороны, написать вы ее можете как вам удобней. Если подскажете, что вам не хватает для этого, это уже другой вопрос. Про список файлов я писал выше, продумаем такой функционал.

    Reply
  6. karpik666

    (5) dk, ну для клиентской стороны только нужен список доступных команд, которые можно передавать на веб-сервис инфостарт через методы post или get, и какие ответы на них, которые можно будет уже обрабатывать на клиентской стороне.

    Reply
  7. karpik666

    (5) dk, спасибо за обратную связь=)

    Reply
  8. dk

    (6) Пока только то, что вы применили в обработке =(

    В дальнейшем, если тема будет интересна, можно сделать полноценный SOAP.

    Reply
  9. vano-ekt

    а мою конфу выпилили в марте

    Внимание! Публикация отправлена на редактирование.

    × Причина: Данный товар не принимается в магазин, так как нарушает пользователькое соглашение: 5.2.4. использовать программное обеспечение и осуществлять действия, направленные на нарушение нормального функционирования Сайта и его сервисов; 5.2.9. осуществлять (пытаться получить) доступ к каким-либо Услугам иным способом, кроме как через интерфейс, предоставленный Администрацией Сайта, за исключением случаев, когда такие действия были прямо разрешены Пользователю в соответствии с отдельным соглашением с Администрацией;



    http://image.prntscr.com/image/67e23ad5497a43d2833a274156ede9d9.png

    Reply
  10. karpik666

    (9) vano-ekt, здравствуйте, а в чем заключалась ваша публикация? По-моему данная обработка как раз соответствует данному пункту правил

    5.2.9. осуществлять (пытаться получить) доступ к каким-либо Услугам иным способом, кроме как через интерфейс, предоставленный Администрацией Сайта, за исключением случаев, когда такие действия были прямо разрешены Пользователю в соответствии с отдельным соглашением с Администрацией;

    Ведь доступ явно предоставлен администрацией сайта.

    Reply
  11. karpik666

    (9) vano-ekt, а понял, ну так у вас парсер сайта, а у меня обработка, которая использует api инфостарт, и получает только данные, которые предоставляет сам сайт.

    Reply
  12. binex
    пока наконец нас не осчастливили обработкой-примером, в котором демонстрировались возможности данного api.

    Что за обработка?

    Где можно посмотреть справку по API Инфостарт?

    Reply
  13. MaxS

    (12) Тут было обсуждение. Справки и инструкции пока нет.

    http://forum.infostart.ru/forum97/topic150165/message1601029/#message1601029

    Reply
  14. binex

    (13) Так никто на oscript и не написал?

    Reply
  15. karpik666

    (14) здравствуйте на oscript не писал, так как не пользуется тема популярностью, так как на текущий момент функционал очень беден, обновление файла публикации без обновления текста публикации обычно никому не нужно.

    Reply
  16. binex

    (15) Похоже я напишу. В рамках освоения jenkins )).

    Reply
  17. karpik666

    (16) замечательно, было бы хорошо

    Reply
  18. MaxS

    (15) Ну, например, я придумал выкладывать два файла — основной файл публикации и бесплатный файл с описанием обновлений. А в тексте публикации ссылка, мол самая оперативная информация об изменениях там…

    И например, раз в месяц можно текст публикации поправить. Для этого тоже обещали сделать API, но обещанного к сожалению долго ждать.

    Reply
  19. karpik666

    (18) вам не кажется, что это костыль? я как клиент не хотел бы каждый раз качать лишний файл себе на почту, чтобы почитать, что же изменилось в публикации, это лишние телодвижения, а народ довольно ленивый. Как я раньше писал мне бы хотелось от api видеть такое

    Я же предполагал, что это будет что-то типо программного аналога личного кабинета: т.е. ты заходишь в обработку, указываешь свой логин и пароль, и входишь на сайт, с одной стороны у тебя список твоих публикаций, нажимаешь на него открывается окно в котором можно обновить текст публикации, обновить файлы, либо дополнительную информацию, и все это не заходя на сайт, либо еще один вариант: ты указываешь адрес публикации, которую ты хочешь скачать, а тебе в ответ приходит ее версия и дата последнего обновления, и ты можешь сравнить с тем, что ты уже скачал.

    Кстати я поднимал данную тему на первом партнерской веб конференции, но даже не знаю, сделают ли они что-то:(

    Reply
  20. MaxS

    (19) Да, костыль, но каждый раз лазить в огромный текст публикации и добавлять одну строку крайне неудобно, т.к. есть риск, что обработка уйдёт на модерацию вечером в пятницу и появится только в понедельник днём. Это было не раз по причине каких-то нововведений.

    Мной где-то на партнерском форуме высказывалось предложение — если публикация уходит на модерацию, то пусть для пользователей остаётся доступной предыдущая версия публикации. После прохождения модерации происходит замена.

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

    С костылём клиент как минимум видит что версия изменилась и если есть потребность в улучшении функционала, скачает. Или подождёт пока информация об обновлении не появится в тексте публикации

    Reply
  21. karpik666

    (20) такой подход подойдет только для публикаций за деньги, так как только там можно размещать бесплатные файлы. Кстати видел вашу просьбу на партнерском, я так понимаю данную просьбу тоже взяли на заметку, тут подойдет картинка со «Ждуном», Кстати интересный вопрос: «Публикация, в которой обновлены через api файлы попадет ли в раздел «Обновленные»? И вот другой вопрос: «А кто клиента оповестит, что вообще были сделаны какие-то изменения в публикации?»

    Reply
  22. 1c-intelligence

    Андрей, вы не в курсе, api инфостарта как-то развивается? Кроме работы с файлами есть что-то?

    Reply
  23. karpik666

    (22) здравствуйте, нет, нигде об этом не пишут, для себя сумел приспособить массовое обновление файлов публикации, стало меньше рутины.

    Reply
  24. 1c-intelligence

    (23) ясно, спасибо.

    Reply
  25. MaxS

    (21)

    «А кто клиента оповестит, что вообще были сделаны какие-то изменения в публикации?»

    Клиент может подписаться на комментарии публикации. Но не все знают как это делать, не всем это нужно, а некоторые просто ждут что обновление само придёт на почту и расстраиваются что «вчера» закончилась техподдержка, а новая версия была месяц назад.

    Reply
  26. karpik666

    (25) да, я как раз себе делал рассылку, а перед истечением срока поддержки еще оповещение, что срок поддержки заканчивается

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *