В недавнем прошлом сайт Инфостарт нас обрадовал новым и осовремененным редактором публикаций, вместе с ним появилась такая интересная штука, как «Api ссылка для обновления».
Что же это за зверь такой? Данная вещь позволяет обновлять файл вашей публикации с помощью HTTP запросов программно. К сожалению до сего момента внятного описания, и нормальной инструкции по данной фиче не было, пока наконец нас не осчастливили обработкой-примером, в котором демонстрировались возможности данного api.
Данная обработка является дополненной и измененной версией представленной в примере. Теперь можно собственноручно оценить, насколько удобен функционал по программному обновлению публикаций.
Как же все-таки использовать данный функционал? Во-первых, необходимо получить api ссылку вашего файла, у каждого файла она своя, если у вас в публикации 5 файлов, то, значит, будет 5 ссылок. Зайдите в редактор вашей публикации, внизу под нужным файлом будет ссылка.
Вставляем ссылку в поле api url, выбираем, необходимо ли вам обновлять также версию файла. Выбираем как обновить публикацию через файл, для этого необходимо будет выбрать файл у вас на компьютере, либо указав ссылку, тогда Инфостарт самостоятельно скачает ее из интернета, поддерживает только прямые ссылки (т.е. не ссылки например яндекс диска). Нажимаем «Обновить», если прошло все успешно, то программа сообщит Success.
Обновлено 09.08.2025
Добавил возможность обновлять ссылку api без обновления файла публикации. (параметр «nh»)
Исправил работу защищенного соединеиня, теперь чтобы публикация была обновлена при нем, поменяйте в своей ссылке http на https.
UPD: Ссылка теперь не обновляется при каждом запросе (это был баг), hash остается неизменным. Если необходимо обновить hash ссылки, то нужно передать параметр nh=1, пример:
http://infostart.ru/public/edit/?a=s&f=FILE_ID&h=HASH_CODE&lnk=PATH_TO_IMAGE&nh=1
http://infostart.ru/public/edit/?a=s&f=FILE_ID&h=HASH_CODE&nh=1
В ответ придет тот же JSON, только на этот раз с NEW_API_LINK в котором собственно будет новая ссылка.
Также прошу обратить внимание, что параметр nh=1 можно использовать и без отправки самого файла.
пример:
В этом случае меняется только ссылка и прилетает ответом в формате JSON в поле NEW_API_LINK.
Если есть вопросы или предложения по работе API — ссылок, буду рад их выслушать =)
(1) dk, сейчас тогда публикацию переделаю с новыми параметрами. Вообще в идеале хочется видеть, что отправляешь запрос на публикацию, а тебе в ответ какие файлы там есть, какого они размера и какие на них ссылки, плюс убрать возможность без указания пароля пользователя обновлять файл по api ссылке, а то какая-то дыра в безопасности.
(2) Список файлов — интересная идея, реализуем такой функционал в будущем.
Касаемо авторизации по логину/паролю получается наоборот, если вы их будете хранить в настройках своей обработки, то вы фактически дарите полный доступ к своему аккаунту для 1С. Приведу простой пример.
1) Имеем вашу обработку на машине А, в ней вы указываете ссылку на обновление файла АА
2) Имеем вашу обработку на машине Б, в ней вы указываете ссылку на обновление файла ББ
3) Имеем вашу учетку с полным доступом ко всем публикациям.
Пример, вы захотели лишить права обновления машину А, для этого вам достаточно сделать обновление hash-кода в публикации, доступ у машины А мгновенно теряется, у машины Б остается. В случае с логином/паролем вы отбираете доступ у машины А и Б.
https://infostart.ru/public/edit/?a=s&f=FILE_ID&h=HASH_CODE&lnk=PATH_TO_IMAGE
Так же по вашей схеме, у машины А и Б есть доступ к вашему аккаунту с возможностью тратить ваши $m и руб, что не есть хорошо.
Если боитесь, что кто-то перехватит ваш hash — пользуйте ssl и обновляйтесь так:
Ну и если совсем страшно, то можно менять hash при каждом обновлении или раз в n-секунд =)
(3) dk, в данном случае вы предполагаете, что разработку ведет какая-то команда человек, которая имеет только доступ к обновлению одной публикации из многих, тогда такой вариант оправдан. Я же предполагал, что это будет что-то типо программного аналога личного кабинета: т.е. ты заходишь в обработку, указываешь свой логин и пароль, и входишь на сайт, с одной стороны у тебя список твоих публикаций, нажимаешь на него открывается окно в котором можно обновить текст публикации, обновить файлы, либо дополнительную информацию, и все это не заходя на сайт, либо еще один вариант: ты указываешь адрес публикации, которую ты хочешь скачать, а тебе в ответ приходит ее версия и дата последнего обновления, и ты можешь сравнить с тем, что ты уже скачал.
(4) Мухи отдельно, котлеты отдельно =)
Вопрос про безопасность:
Ответ на него был выше, плюс добавлю, что связка FILE_ID и HASH аналогична связке LOGIN и PASS, только в первом случае на доступы еще и наложены ограничения в области их применения, что само собой безопаснее, чем LOGIN и PASS
Не совсем, тут упор сделан на безопасность, удобство и гибкость.
Это по большей части описание вашей клиентской стороны, написать вы ее можете как вам удобней. Если подскажете, что вам не хватает для этого, это уже другой вопрос. Про список файлов я писал выше, продумаем такой функционал.
(5) dk, ну для клиентской стороны только нужен список доступных команд, которые можно передавать на веб-сервис инфостарт через методы post или get, и какие ответы на них, которые можно будет уже обрабатывать на клиентской стороне.
(5) dk, спасибо за обратную связь=)
(6) Пока только то, что вы применили в обработке =(
В дальнейшем, если тема будет интересна, можно сделать полноценный SOAP.
а мою конфу выпилили в марте
http://image.prntscr.com/image/67e23ad5497a43d2833a274156ede9d9.png
Внимание! Публикация отправлена на редактирование.
× Причина: Данный товар не принимается в магазин, так как нарушает пользователькое соглашение: 5.2.4. использовать программное обеспечение и осуществлять действия, направленные на нарушение нормального функционирования Сайта и его сервисов; 5.2.9. осуществлять (пытаться получить) доступ к каким-либо Услугам иным способом, кроме как через интерфейс, предоставленный Администрацией Сайта, за исключением случаев, когда такие действия были прямо разрешены Пользователю в соответствии с отдельным соглашением с Администрацией;
(9) vano-ekt, здравствуйте, а в чем заключалась ваша публикация? По-моему данная обработка как раз соответствует данному пункту правил
Ведь доступ явно предоставлен администрацией сайта.
(9) vano-ekt, а понял, ну так у вас парсер сайта, а у меня обработка, которая использует api инфостарт, и получает только данные, которые предоставляет сам сайт.
Что за обработка?
Где можно посмотреть справку по API Инфостарт?
(12) Тут было обсуждение. Справки и инструкции пока нет.
http://forum.infostart.ru/forum97/topic150165/message1601029/#message1601029
(13) Так никто на oscript и не написал?
(14) здравствуйте на oscript не писал, так как не пользуется тема популярностью, так как на текущий момент функционал очень беден, обновление файла публикации без обновления текста публикации обычно никому не нужно.
(15) Похоже я напишу. В рамках освоения jenkins )).
(16) замечательно, было бы хорошо
(15) Ну, например, я придумал выкладывать два файла — основной файл публикации и бесплатный файл с описанием обновлений. А в тексте публикации ссылка, мол самая оперативная информация об изменениях там…
И например, раз в месяц можно текст публикации поправить. Для этого тоже обещали сделать API, но обещанного к сожалению долго ждать.
(18) вам не кажется, что это костыль? я как клиент не хотел бы каждый раз качать лишний файл себе на почту, чтобы почитать, что же изменилось в публикации, это лишние телодвижения, а народ довольно ленивый. Как я раньше писал мне бы хотелось от api видеть такое
Кстати я поднимал данную тему на первом партнерской веб конференции, но даже не знаю, сделают ли они что-то:(
(19) Да, костыль, но каждый раз лазить в огромный текст публикации и добавлять одну строку крайне неудобно, т.к. есть риск, что обработка уйдёт на модерацию вечером в пятницу и появится только в понедельник днём. Это было не раз по причине каких-то нововведений.
Мной где-то на партнерском форуме высказывалось предложение — если публикация уходит на модерацию, то пусть для пользователей остаётся доступной предыдущая версия публикации. После прохождения модерации происходит замена.
Так же давно висит просьба дать функционал для получения информации об обновлении, который пользователь мог бы вызвать из меню купленной обработки.
С костылём клиент как минимум видит что версия изменилась и если есть потребность в улучшении функционала, скачает. Или подождёт пока информация об обновлении не появится в тексте публикации
(20) такой подход подойдет только для публикаций за деньги, так как только там можно размещать бесплатные файлы. Кстати видел вашу просьбу на партнерском, я так понимаю данную просьбу тоже взяли на заметку, тут подойдет картинка со «Ждуном», Кстати интересный вопрос: «Публикация, в которой обновлены через api файлы попадет ли в раздел «Обновленные»? И вот другой вопрос: «А кто клиента оповестит, что вообще были сделаны какие-то изменения в публикации?»
Андрей, вы не в курсе, api инфостарта как-то развивается? Кроме работы с файлами есть что-то?
(22) здравствуйте, нет, нигде об этом не пишут, для себя сумел приспособить массовое обновление файлов публикации, стало меньше рутины.
(23) ясно, спасибо.
(21)
Клиент может подписаться на комментарии публикации. Но не все знают как это делать, не всем это нужно, а некоторые просто ждут что обновление само придёт на почту и расстраиваются что «вчера» закончилась техподдержка, а новая версия была месяц назад.
(25) да, я как раз себе делал рассылку, а перед истечением срока поддержки еще оповещение, что срок поддержки заканчивается