IE2017

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

Обмен - Интеграция с WEB

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

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

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

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

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

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

Пример

Обновлено 09.08.2016

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

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

Скачать файлы

Наименование Файл Версия Размер
Работа с api Инфостарт
.epf 11,32Kb
08.08.16
7
.epf 1.0.1 11,32Kb 7 Скачать

См. также

Комментарии
1. Дмитрий Клименко (dk) 09.08.16 09:21 Сейчас в теме
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 - ссылок, буду рад их выслушать =)
2. Андрей Карпов (karpik666) 508 09.08.16 09:42 Сейчас в теме
(1) dk, сейчас тогда публикацию переделаю с новыми параметрами. Вообще в идеале хочется видеть, что отправляешь запрос на публикацию, а тебе в ответ какие файлы там есть, какого они размера и какие на них ссылки, плюс убрать возможность без указания пароля пользователя обновлять файл по api ссылке, а то какая-то дыра в безопасности.
3. Дмитрий Клименко (dk) 09.08.16 09:57 Сейчас в теме
(2) karpik666, Список файлов - интересная идея, реализуем такой функционал в будущем.
Касаемо авторизации по логину/паролю получается наоборот, если вы их будете хранить в настройках своей обработки, то вы фактически дарите полный доступ к своему аккаунту для 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-секунд =)


4. Андрей Карпов (karpik666) 508 09.08.16 10:04 Сейчас в теме
(3) dk, в данном случае вы предполагаете, что разработку ведет какая-то команда человек, которая имеет только доступ к обновлению одной публикации из многих, тогда такой вариант оправдан. Я же предполагал, что это будет что-то типо программного аналога личного кабинета: т.е. ты заходишь в обработку, указываешь свой логин и пароль, и входишь на сайт, с одной стороны у тебя список твоих публикаций, нажимаешь на него открывается окно в котором можно обновить текст публикации, обновить файлы, либо дополнительную информацию, и все это не заходя на сайт, либо еще один вариант: ты указываешь адрес публикации, которую ты хочешь скачать, а тебе в ответ приходит ее версия и дата последнего обновления, и ты можешь сравнить с тем, что ты уже скачал.
5. Дмитрий Клименко (dk) 09.08.16 10:31 Сейчас в теме
(4) karpik666, Мухи отдельно, котлеты отдельно =)
Вопрос про безопасность:
плюс убрать возможность без указания пароля пользователя обновлять файл по api ссылке, а то какая-то дыра в безопасности.

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

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

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


Это по большей части описание вашей клиентской стороны, написать вы ее можете как вам удобней. Если подскажете, что вам не хватает для этого, это уже другой вопрос. Про список файлов я писал выше, продумаем такой функционал.
6. Андрей Карпов (karpik666) 508 09.08.16 10:34 Сейчас в теме
(5) dk, ну для клиентской стороны только нужен список доступных команд, которые можно передавать на веб-сервис инфостарт через методы post или get, и какие ответы на них, которые можно будет уже обрабатывать на клиентской стороне.
7. Андрей Карпов (karpik666) 508 09.08.16 10:35 Сейчас в теме
(5) dk, спасибо за обратную связь=)
8. Дмитрий Клименко (dk) 09.08.16 10:39 Сейчас в теме
(6) karpik666, Пока только то, что вы применили в обработке =(
В дальнейшем, если тема будет интересна, можно сделать полноценный SOAP.
9. Ivan Khorkov (vano-ekt) 873 10.08.16 10:37 Сейчас в теме
а мою конфу выпилили в марте
Внимание! Публикация отправлена на редактирование.
× Причина: Данный товар не принимается в магазин, так как нарушает пользователькое соглашение: 5.2.4. использовать программное обеспечение и осуществлять действия, направленные на нарушение нормального функционирования Сайта и его сервисов; 5.2.9. осуществлять (пытаться получить) доступ к каким-либо Услугам иным способом, кроме как через интерфейс, предоставленный Администрацией Сайта, за исключением случаев, когда такие действия были прямо разрешены Пользователю в соответствии с отдельным соглашением с Администрацией;

http://image.prntscr.com/image/67e23ad5497a43d2833a274156ede9d9.png
10. Андрей Карпов (karpik666) 508 10.08.16 10:41 Сейчас в теме
(9) vano-ekt, здравствуйте, а в чем заключалась ваша публикация? По-моему данная обработка как раз соответствует данному пункту правил
5.2.9. осуществлять (пытаться получить) доступ к каким-либо Услугам иным способом, кроме как через интерфейс, предоставленный Администрацией Сайта, за исключением случаев, когда такие действия были прямо разрешены Пользователю в соответствии с отдельным соглашением с Администрацией;
Ведь доступ явно предоставлен администрацией сайта.
11. Андрей Карпов (karpik666) 508 10.08.16 10:57 Сейчас в теме
(9) vano-ekt, а понял, ну так у вас парсер сайта, а у меня обработка, которая использует api инфостарт, и получает только данные, которые предоставляет сам сайт.
12. Денис Новосёлов (binex) 204 26.04.17 14:27 Сейчас в теме
пока наконец нас не осчастливили обработкой-примером, в котором демонстрировались возможности данного api.


Что за обработка?
Где можно посмотреть справку по API Инфостарт?
13. Максим Сухов (MaxS) 240 26.04.17 14:42 Сейчас в теме
(12) Тут было обсуждение. Справки и инструкции пока нет.
http://forum.infostart.ru/forum97/topic150165/message1601029/#message1601029
karpik666; binex; +2 Ответить 1
14. Денис Новосёлов (binex) 204 26.04.17 15:06 Сейчас в теме
(13) Так никто на oscript и не написал?
15. Андрей Карпов (karpik666) 508 26.04.17 17:19 Сейчас в теме
(14) здравствуйте на oscript не писал, так как не пользуется тема популярностью, так как на текущий момент функционал очень беден, обновление файла публикации без обновления текста публикации обычно никому не нужно.
16. Денис Новосёлов (binex) 204 26.04.17 17:22 Сейчас в теме
(15) Похоже я напишу. В рамках освоения jenkins )).
17. Андрей Карпов (karpik666) 508 26.04.17 17:31 Сейчас в теме
(16) замечательно, было бы хорошо
18. Максим Сухов (MaxS) 240 26.04.17 17:36 Сейчас в теме
(15) Ну, например, я придумал выкладывать два файла - основной файл публикации и бесплатный файл с описанием обновлений. А в тексте публикации ссылка, мол самая оперативная информация об изменениях там...
И например, раз в месяц можно текст публикации поправить. Для этого тоже обещали сделать API, но обещанного к сожалению долго ждать.
19. Андрей Карпов (karpik666) 508 26.04.17 17:47 Сейчас в теме
(18) вам не кажется, что это костыль? я как клиент не хотел бы каждый раз качать лишний файл себе на почту, чтобы почитать, что же изменилось в публикации, это лишние телодвижения, а народ довольно ленивый. Как я раньше писал мне бы хотелось от api видеть такое
Я же предполагал, что это будет что-то типо программного аналога личного кабинета: т.е. ты заходишь в обработку, указываешь свой логин и пароль, и входишь на сайт, с одной стороны у тебя список твоих публикаций, нажимаешь на него открывается окно в котором можно обновить текст публикации, обновить файлы, либо дополнительную информацию, и все это не заходя на сайт, либо еще один вариант: ты указываешь адрес публикации, которую ты хочешь скачать, а тебе в ответ приходит ее версия и дата последнего обновления, и ты можешь сравнить с тем, что ты уже скачал.
Кстати я поднимал данную тему на первом партнерской веб конференции, но даже не знаю, сделают ли они что-то:(
20. Максим Сухов (MaxS) 240 26.04.17 18:10 Сейчас в теме
(19) Да, костыль, но каждый раз лазить в огромный текст публикации и добавлять одну строку крайне неудобно, т.к. есть риск, что обработка уйдёт на модерацию вечером в пятницу и появится только в понедельник днём. Это было не раз по причине каких-то нововведений.
Мной где-то на партнерском форуме высказывалось предложение - если публикация уходит на модерацию, то пусть для пользователей остаётся доступной предыдущая версия публикации. После прохождения модерации происходит замена.
Так же давно висит просьба дать функционал для получения информации об обновлении, который пользователь мог бы вызвать из меню купленной обработки.

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