Модератор форума: JonMagon  
Сообщество uCoz » Мастерская uCoz » Использование PHP и API на uCoz » Базовое API на uCoz
Базовое API на uCoz
Модератор форума
Сообщение # 1 | 15:36:48
В марте 2011 в системе uCoz появилась возможность использовать функционал API.

АPI - это бесплатная возможность, её нужно просто активировать в Основных настройках сайта.

Инструкция по включению и использованию данной возможности находится ЗДЕСЬ.


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

ОБНОВЛЕНИЯ

  • [13.05.2011] Добавлена возможность использовать ключ (API key) для базового API.

    Данная возможность позволяет разрешить использование API только для тех, кто знает ключ. Для всех остальных API не будет работать. Включить эту возможность можно в панели управления в разделе “Настройки” → “Общие настройки” → “Использовать API key”. Ключ генерируется автоматически.

    Если вы захотите изменить уже существующий ключ, то отключите и включите заново эту опцию, затем сохраните изменения.

    Использовать API при наличии ключа нужно посредством GET-запроса следующим образом:
    http://SITE_ADDRESS/api/MODULENAME/ANYRELPATH?apikey=APIKEY


JonMagon
Сообщений: 2291
Репутация: 1828

Сообщение # 166 | 13:00:20
roach, /index/46 отдает количество постов только текущего пользователя.

Не оказываю поддержку посредством ЛС/ICQ/Skype/AIM/XMPP/E-mail.
roach
Сообщений: 44
Репутация: 30

Сообщение # 167 | 13:44:39
JonMagon, каким образом я могу тогда узнать количество постов любого пользователя?
sch779
Сообщений: 703
Репутация: 348

Сообщение # 168 | 13:59:19
Quote (roach)
каким образом я могу тогда узнать количество постов любого пользователя?

Можно обойтись без API, который (по моему личному мнению после длительной с ним работы) все еще значительно "сырой" и откровенно не доработан под конкретные нужды разработчиков!
Сделайте обычный get-запрос на страницу профиля пользователя "/index/8-uID", после чего спокойно возьмите из кода этой страницы нужные Вам счетчики.
roach
Сообщений: 44
Репутация: 30

Сообщение # 169 | 14:23:44
sch779, я так раньше и делал, парсил страницу пользователя и брал нужные мне элементы, однако для этого использовалась БД и крон, который обновлял данные. Учитывая тот факт, что я делаю юзербар с информацией о пользователе, то это не очень удачная идея получения данных, чем больше пользователей заносится в БД, тем выше нагрузка на сервер, что не очень желательно. Тут же ничего использовать не нужно, кроме взятия данных через апи, что упрощает мне жизнь, но вот этот момент не очень нравится, что сообщения вытащить нельзя.
JonMagon
Сообщений: 2291
Репутация: 1828

Сообщение # 170 | 14:47:53
roach, API тоже не из воздуха берется.
Code
file_get_contents("http://ваш_сайт/api/index/8-1");

Code
file_get_contents("http://ваш_сайт/index/8-1");

Разницы нет никакой.
Можете вообще свой API написать, в этом нет ничего сложного.

Решение вашей проблемы:
В шаблон "Персональная страница пользователя" вставляем следующий код
Code
<?if($IP_ADDRESS$ = '195.216.243.107')?><?xml version="1.0"?>
<methodResponse>
<params>
<param>
<value><struct>
<member><name>FORUM_ENTRIES</name><value><i4>$_FORUM_ENTRIES$</i4></value></member>
</struct></value>
</param>
</params>
</methodResponse><?else?>стандартный код персональной страницы пользователя<?endif?>


В PHP файле в нужном месте используем код
Code
$xml = xmlrpc_decode(file_get_contents("http://ваш_сайт/index/8-1"));
echo $xml["FORUM_ENTRIES"];

Не оказываю поддержку посредством ЛС/ICQ/Skype/AIM/XMPP/E-mail.
Сообщение отредактировал JonMagon - Понедельник, 13 Авг 2012, 15:12:01
roach
Сообщений: 44
Репутация: 30

Сообщение # 171 | 15:00:33
Quote (JonMagon)
Разницы нет никакой.

совсем никакой, только в 1 случае мы получаем весь html код, который придётся обрабатывать и сохранять, во втором мы получаем нормальные данные и ничего лишнего. Одно дело обрабатывать инфу у себя на сервере, нагружая его, другое получить то, что нужно в удобном виде.
Quote (JonMagon)
Можете вообще свой API написать, в этом нет ничего сложного.

Могу, но в этом случае юкоз предоставляет мне функционал и я задаю вопрос по этому функционалу, а не как создать апи и вытаскивать данные.
roach
Сообщений: 44
Репутация: 30

Сообщение # 172 | 15:06:19
Quote (JonMagon)
Решение вашей проблемы

Для меня это не подходит, я не администратор сайта.
Quote
Вышеописанный вариант реализует свой API, который ничем не отличается от системного.

Я хочу использовать системный, а не свой. Если бы я использовал свой, я бы сюда не пришёл и не отвлекал бы никого.
Сообщение отредактировал roach - Понедельник, 13 Авг 2012, 15:07:47
sch779
Сообщений: 703
Репутация: 348

Сообщение # 173 | 19:47:21
Quote (roach)
Я хочу использовать системный, а не свой

Честно говоря, совершенно не понял Ваши предыдущие посты про необходимость использования БД, PHP и своего сервера?!
Зачем?
Code

<script type="text/javascript">
var posts;
$.get("/index/8-1", function(data){
   posts = $("a[href $= '/forum/0-0-1-3-1'] b",$(data)).text()
})
</script>

Вот и весь код для получения количества постов пользователя с ID=1!

Аналогично и для других счетчиков на персональной страничке.
roach
Сообщений: 44
Репутация: 30

Сообщение # 174 | 20:38:57
Вы можете понять, что я хочу использовать тот апи, который предоставляет юкоз? Неважно, почему я не хочу писать свой код, Юкоз предоставляет функции, я хочу ими пользоваться. Меня не волнует, насколько просто получать данные можно, мне интересно узнать, как получить данные с помощью Вашего апи. Отвечайте, пожалуйста, по существу.
sch779
Сообщений: 703
Репутация: 348

Сообщение # 175 | 17:35:07
Quote (roach)
мне интересно узнать, как получить данные с помощью Вашего апи.

Вам уже, кажется, ответили - с помощью текущей версии API это невозможно сделать!
И в качестве альтернативы я привел код, который работает практически так же, как и API.

Quote (roach)
Отвечайте, пожалуйста, по существу.

Вам предлагают рабочее решение, а Вы "отбрыкиваетесь"! :)))
Так бы сразу и написали, что спрашиваете не для дела, а просто узнать степень функциональности API.

Добавлено (18-Авг-2012, 17:35:07)
---------------------------------------------
Может кто знает - можно ли с помощью API получить информацию о заданной теме?
Т.е., ТОЛЬКО информацию о самой теме - название, описание и полную ссылку на тему. Ну, в принципе, было бы неплохо еще дополнительно и первое сообщение, с которым "связана" сама тема.
И вообще было бы здорово, если бы всю эту информацию можно было получить только по одному ID темы - все равно он уникален среди объектов форума и, имхо, зачем указывать еще и ID форума?

А то в API вообще нет запроса, с помощью которого можно было бы получить эту информацию! :(
Кроме неуказанного в документации запроса типа "/api/forum/forumID", который выводит практически всю указанную выше информацию НО по всем темам заданного форума!

roach
Сообщений: 44
Репутация: 30

Сообщение # 176 | 18:40:21
sch779, ну вот теперь понятно, что вещи, описанные в Вашем блоге не соответствуют дейтвительности.
sch779
Сообщений: 703
Репутация: 348

Сообщение # 177 | 19:26:01
Quote (roach)
описанные в Вашем блоге не соответствуют дейтвительности

В моем блоге?!
У меня сроду не было и нет своего блога - я не блогописатель!

Вы о чем, разрешите спросить?!

Если Вы имеете в виду блог поддержки Ucoz, то я к нему не имею никакого отношения - все вопросы к авторам Ucoz!

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

Что же касается моего вопроса - я решение нашел. Правда, не через API, но - работает!
Другое дело, что мое решение не является документированным разработчиками Ucoz и может в дальнейшем, если они изменят алгоритм работы блока "Форум", не работать!
А API - вполне документированный инструмент и можно быть более-менее уверенным, что просто так "с бухты-барахты" алгоритм его использования разработчики не изменят.
Сообщение отредактировал sch779 - Суббота, 18 Авг 2012, 19:31:13
roach
Сообщений: 44
Репутация: 30

Сообщение # 178 | 20:25:26
sch779, к вам именно у меня нет никаких претензий и быть не может, я имел ввиду юкоз. Чей именно там был блог, кто разрабатывал апи и кто писал описание меня в последнюю очередь волнует. Именно вам спасибо за попытки помочь. Просто я прочитал, что можно получить посты, причём от гостя, как написано в описании апи, оказалось, что это не работает, зачем было писать так я не знаю, да и мне не интересно) Вам лично ещё раз отдельное спасибо, что уделили время.
lostfilm
Сообщений: 23
Репутация: 12
Уровень замечаний:

Сообщение # 179 | 15:12:08
Подскажите, Работает ли API с модулем интернет магазина?

Илуватар
Сообщений: 3
Репутация: 0

Сообщение # 180 | 10:55:03
Здравствуйте.
1. Скажите пожалуйста, можно ли через апи получить список всех зарегистрированных пользователей на сайте?
2. Если нет, то как можно получить список пользователей количеством больше 10 на страницу?
3. И последнее, подскажите, где можно прочитать про правила формирования урлов на страницы в ucoz? Конкретно интересует, что скрывается за "*" в шаблоне "http://USER_SITE/api/index/15-*-*-*-*"?
Сообщество uCoz » Мастерская uCoz » Использование PHP и API на uCoz » Базовое API на uCoz
Поиск: