Модератор форума: JonMagon |
Сообщество uCoz Мастерская uCoz Использование PHP и API на uCoz Базовое API на uCoz |
Базовое API на uCoz |
В марте 2011 в системе uCoz появилась возможность использовать функционал API. АPI - это бесплатная возможность, её нужно просто активировать в Основных настройках сайта. Инструкция по включению и использованию данной возможности находится ЗДЕСЬ. В этой теме разрешается обсуждать данную возможность, делиться опытом, вносить конструктивные предложения. ОБНОВЛЕНИЯ
|
Quote (Илуватар) Скажите пожалуйста, можно ли через апи получить список всех зарегистрированных пользователей на сайте? Получаете общее число пользователей и циклом for через API получаете нужную информацию о каждом. Quote (Илуватар) Конкретно интересует, что скрывается за "*" в шаблоне "http://USER_SITE/api/index/15-*-*-*-*"? В каком шаблоне? Вы о чем? Не оказываю поддержку посредством ЛС/ICQ/Skype/AIM/XMPP/E-mail.
|
Quote (JonMagon) Получаете общее число пользователей и циклом for через API получаете нужную информацию о каждом. Еще один нубский вопрос тогда: как получить общее число пользователей? ) Quote (JonMagon) В каком шаблоне? Вы о чем? Шаблоном я назвал строку вида "http://USER_SITE/api/index/15-*-*-*-*". Маска URL если хотите. Меня интересует, что скрывается под звездочками. К примеру, понятно что" http://USER_SITE/api/index/15-1" - это первая страница списка пользователей. А вот что означают следующие параметры - непонятно. Поиском по форуму не нашел, поэтому если вы ткнете в место, где это разжевывается или объясните, то буду очень признателен. И для полноты картины объясню часть своей задачи. Хочу с помощью JS, по возможности одним запросом, получить список всех пользователей. Как получить несколькими запросами - понятно. Но если количество пользователей велико, то при таком решении бан по IP не заставит себя ждать. |
Quote (Илуватар) по возможности одним запросом, получить список всех пользователей API построено таким образом, что само ограничивает объем информации, возвращаемой одним запросом. В некоторых модулях кол-во записей на странице связано с соответствующим параметром в настройках этого модуля в админпанели. Для списка пользователей такого параметра в настройках нет. Поэтому через API Ваш запрос реализовать нельзя. Можно без API - прямым запросом на форум Вашего сайта: Code $.post("/forum/",{a:35, s:1, res=100}); Возвратит стандартную страницу сайта со списком участников форума, что эквивалентно списку всех пользователей, зарегестрированных на сайте. Здесь, res - кол-во пользователей, возвращаемых данным запросом. Можно использовать еще некоторые параметры для фильтрации списка - более подробно можно посмотреть в исходнике страницы, которая возвращается по ссылке "Участники" на любой из страниц форума. Там в конце есть формочка, которая и посылает запрос с условиями фильтра. В ней значение res ограничено 100 - нужно попробовать большее значение - возможно и выдаст именно столько, сколько запросиш. Следует учесть, что возвращает именно страницу в html-коде - соответственно, прийдется использовать несколько другие приемы получения нужной информации из DOM-элементов. Ну и, естественно, возвращаемый объем данных будет побольше, чем через API. |
Quote (Илуватар) Еще один нубский вопрос тогда: как получить общее число пользователей? ) Вывести значение на какой-либо странице и скриптом через регулярки получать это значение. Quote (Илуватар) Шаблоном я назвал строку вида "http://USER_SITE/api/index/15-*-*-*-*" Понятия не имею где вы взяли эту строку. Не оказываю поддержку посредством ЛС/ICQ/Skype/AIM/XMPP/E-mail.
|
Quote (JonMagon) Понятия не имею где вы взяли эту строку. Загляни в шапку этой темы - там, в описании API, все шаблоны запросов оформлены таким образом. При чем, как справедливо заметил автор вопроса, не дано никакого описания, какие параметры должны быть вместо звездочек - приходится самому методом "тыка" искать правильные запросы. Я, правда, поступаю по другому - открываю на сайте нужную страницу и просто добавляю в url-адрес "/api/" после имени домена - если запрос правильный, то в браузер будет возвращен нужный xml-код. Таким образом, кстати, можно обнаружить запросы, которые API обрабатывает, но в доке не описаны! Сообщение отредактировал sch779 - Воскресенье, 02 Сен 2012, 21:47:48
|
JonMagon, sch779 спасибо за ваши ответы!
Quote (sch779) Там в конце есть формочка, которая и посылает запрос с условиями фильтра. Такая же формочка есть и на страницах вида /index/15-*. Собственно использование post-запроса с параметрами из этой формы было первоначальным планом. Но, к сожалению, в html-виде на странице не выводится необходимая мне информация о пользователе. Например адрес. Видимо таки придется делать несколько ассинхронных запросов к api и результат кешировать в localStorage, дабы не создавать большой поток запросов и не получать банов. Спасибо, вы помогли мне определиться в дальнейших действиях. Quote (JonMagon) Понятия не имею где вы взяли эту строку. Как верно отметил sch779, взял из документации по api. |
Quote (Илуватар) результат кешировать в localStorage, дабы не создавать большой поток запросов Вот, кстати, тоже "белое пятно" в этом API! Непонятно - каждый API-запрос явно "дергает" базу сайта или же существует некие информеры для API, из которых и делается выборка нужных данных? Если второе, то бана быть не должно - информеры, как раз, и введены для уменьшения нагрузки на сервера. Я, кстати, несколько раз замечал, что после удаления некоторых постов на форуме API-запросы, формирующие список последних постов нужных форумов, некоторое время возвращали удаленные посты! |
О! Сюда, оказывается, заглядывают разработчики системы!
Спасибо за закрытие одного из "белых пятен" API! А что по поводу звездочек в шаблонах запросов? При чем, как я убедился - практически ни в одном запросе не обязательно задавать все указанные в шаблоне значения! |
Victor, можно надеяться на ввод новых параметров для вывода в api?
Очень не достает некоторых данных на странице пользователя, а так же на страницах материалов различных модулей. Видел что ввели только ссылку на аватар для страницы пользователя и все, на этом ввод новых переменных закончен? Благодарности можно оставить — в репутации.
Помощью в ЛС не занимаюсь, есть форум. Занимаюсь сайтами на платной основе. Шаманю на php и mysql с использованием бубна 80 lvl. |
Quote (Victor) В частности появится возможность использовать его не только как read-only. Ну, это мы и сейчас умеем через post-запрос делать! Более того - прекрасно можно работать даже в самой панели адмена - управлять, к примеру, форумами или категориями в различных модулях. Правда, нужно предварительно войти как админ. Хотя, конечно, через документированную функцию делать все это более правильно и надежнее! |
Victor, пробовал сделать api для php сервера прямо на странице материала, админ бар гадкий мешает, мож какие варианты еще есть?
Очень нужно сейчас вытягивать кой какие данные и синхронизировать со своей mysql бд, все бы ничего, даже устроил бы вариант с шаблоном, но все дело портит админ бар, который вообще по идее не должен подключаться если его нет в шаблоне. Благодарности можно оставить — в репутации.
Помощью в ЛС не занимаюсь, есть форум. Занимаюсь сайтами на платной основе. Шаманю на php и mysql с использованием бубна 80 lvl. |
| |||