Модератор форума: 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


Victor
Сообщений: 1141
Репутация: 576

Сообщение # 196 | 17:41:14
SOFTOLAB_COM, чем же он мешает? Спарсить данные можно без проблем и с админ-баром.
Как отключается - код уже дали (можете для нужной учетной записи условие сделать).
SOFTOLAB_COM
Сообщений: 1363
Репутация: 777

Сообщение # 197 | 02:40:25
Victor, да вот не так все просто было, но уже решил эту проблему :)
Теперь проблема в другом, для просмотра api материала, нужно иметь не только id, но и id категории (и дату для новости), зачем это было сделано?
Сейчас это ставит крест на многих идеях, т.к. получить id можно довольно таки легко, а вот с категорией и датой, в некоторых случаях нет возможности их получить вообще.
Можно исправить и сделать так что эти значения ваш обработчик api не принимал бы во внимание?
т.е. было бы так: /api/load/*-1-0-id

Так было бы идеально.

*************

Еще с помощью api можно делать нехорошую накрутку просмотров, т.к при просмотре api материала, обработчик не принимает во внимание что данный пользователь уже просматривал этот материал за текущие сутки, и получается в итоге можно за сутки накрутить счетчик до небес (если раньше защита не заблокирует ip).

Например на специфических сайтах (например объявлений) это вызовет "незаконный" подъем материала в списке материалов на сайте, т.е. бесплатный способ поднятия объявления :)

От данного бага не спасает даже apikey, впрочем при его использовании, когда его нет, почему то не выводится ошибка, а просто показывается материал, что так же вызывает вопросы к разработчикам.

Благодарности можно оставить — в репутации.
Помощью в ЛС не занимаюсь, есть форум.
Занимаюсь сайтами на платной основе.
Шаманю на php и mysql с использованием бубна 80 lvl.
Сообщение отредактировал SOFTOLAB_COM - Четверг, 20 Сен 2012, 02:44:02
Mihail94
Сообщений: 7
Репутация: 0

Сообщение # 198 | 17:36:23
Всем Привет! Можно ли сделать при помощи API вывод записей пользователя в дневнике на любой странице сайта?



Как на рис. надо: Название, текст материала, изображения, веб сайт пользователя, аватар пользователя, логин, дата, рейтинг, количество комментариев, ну в общем вроде всё.

Буду оч благодарен за помощь! :D

www.ChromeGT.ru
Skype: toderasco-misa
vk: id78732027
Ferro7
Сообщений: 285
Репутация: 230

Сообщение # 199 | 20:37:02
При запросе через АПИ страницу с материалом, вместе с текстом материала предоставляется и рекламный блок юкоза.
Ээээээ... это такая фича, или баг? xD

Вы полюбили меня. Здесь я. (с)
sch779
Сообщений: 703
Репутация: 348

Сообщение # 200 | 21:18:19
Quote (Ferro7)
вместе с текстом материала предоставляется и рекламный блок юкоза

Это где такое?!
Если Вы запрашиваете данные именно через стандартные запросы API, то получаете в ответ чистый XML, в котором просто нет места тегам и скриптам, без которых вывод рекламы невозможен!
Очевидно, Вы имеете в виду чтение страницы сайта через Ajax типа $.get('http://www.mysite.ru/page1')?
Если так, то ничего удивительного - это не API-запрос, а обычное чтение страницы как будто из браузера!
JonMagon
Сообщений: 2291
Репутация: 1828

Сообщение # 201 | 22:16:30
Ferro7, передано.
В API этого действительно быть не должно.

Не оказываю поддержку посредством ЛС/ICQ/Skype/AIM/XMPP/E-mail.
Сообщение отредактировал JonMagon - Понедельник, 15 Окт 2012, 22:17:52
sch779
Сообщений: 703
Репутация: 348

Сообщение # 202 | 18:49:23
Назрел такой вопрос.
Все наслышаны о механизме ucoz-серверов для защиты от DDOS-атак.
Т.е., не рекомендуется увлекаться частыми get-запросами на страницы своего сайта.

А как дела обстоят с API? На API-запросы это ограничение так же действует?
Если да, то все прелести API типа и не нужны!
Обычно, когда пишешь что-то серьезное, чего нельзя сделать с помощью информеров, то одним API-запросом трудно обойтись - приходится использовать сразу 3-4, а то и до 10-ти!

Простейший пример - получение данных из форумов. Информеры, к сожалению, не предоставляют такой возможности и приходится вытаскивать сообщения с помощью API-запросов. И если нужно получить по одному последнему сообщению из каждой темы какого либо форума, приходится делать: минимум 1 запрос для получения списка тем форума + по одному запросу для чтения последнего сообщения каждой темы!
Как на это отреагирует система защиты от DDOS-атак?
И если с клиентскими js-скриптами может и "прокатит" (вряд ли конечный пользователь будет часто рефрешить страницу, где стоит такой скрипт), то с php-скриптом на внешнем сервере наверняка сработает защиты - ведь все клиентские запросы, в итоге, будут обрабатываться через этот php-скрипт с одного IP-адреса!

В связи с этим второй вопрос - если эти запросы будут идти с php-сервера ucoz (т.е., если купить php-услугу), как в этом случае будет обстоять дело с защитой от DDOS-атак?

Спасибо!
Ferro7
Сообщений: 285
Репутация: 230

Сообщение # 203 | 22:27:04
Quote (sch779)
В связи с этим второй вопрос - если эти запросы будут идти с php-сервера ucoz (т.е., если купить php-услугу), как в этом случае будет обстоять дело с защитой от DDOS-атак?


Если эта защита защищает сервер uCoz от родственного юкозу сервера PHP - это плохая защита :D

Вы полюбили меня. Здесь я. (с)
sch779
Сообщений: 703
Репутация: 348

Сообщение # 204 | 06:17:08
Ну, всякое может быть!
Не зря же они, защищая основные сервера с сайтами, выделили отдельный php-сервер.
Поэтому, если быть последовательным, то как раз наоборот - плохой защита будет, если оставить это звено без защиты!
Хотя, есть надежда, что здесь как раз и можно будет не бояться "зверств" их "защитника" от DDOS-атак и можно будет спокойно использовать API "на полную"!

Добавлено (01-Ноя-2012, 06:17:08)
---------------------------------------------
Так может кто ответит на вопрос - блокирует-ли система защиты от DDOS-атак API-запросы?
Сообщение отредактировал sch779 - Четверг, 01 Ноя 2012, 06:17:23
vadim-narochnyi
Сообщений: 68
Репутация: 6

Сообщение # 205 | 12:41:32
Может быть кто-то уже спрашивал, возможно повторюсь.
Получить данные можно так:
Code
http://site.com/api/load/razdel/category/name_file/32-1-0-305?apikey=API key


но получить данные по короткой ссылке (без ЧПУ) не возможно:
Code
http://site.com/api/load/32-1-0-305?apikey=API key


Это очень не удобно, можно ли это как-то исправить или обойти? Спасибо!

GTAdrom.com - каталог автомобилей для серии игр GTA 4 и GTA San Andreas
Ferro7
Сообщений: 285
Репутация: 230

Сообщение # 206 | 02:52:17
Ещё как можно :)

blog.ucoz.ru/api/blog/2012-10-29-243

Вы полюбили меня. Здесь я. (с)
Сообщение отредактировал Ferro7 - Понедельник, 05 Ноя 2012, 02:52:37
vadim-narochnyi
Сообщений: 68
Репутация: 6

Сообщение # 207 | 09:14:57
Ferro7, Это работает в модуле "blog", а на своем сайте я проверил на модулях "load", "board" в них не работает!

GTAdrom.com - каталог автомобилей для серии игр GTA 4 и GTA San Andreas
JonMagon
Сообщений: 2291
Репутация: 1828

Сообщение # 208 | 14:42:25
vadim-narochnyi, примеры ссылок в студию.

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

Сообщение # 209 | 14:46:58
JonMagon, Вот примеры:

GTAdrom.com - каталог автомобилей для серии игр GTA 4 и GTA San Andreas
Сообщение отредактировал vadim-narochnyi - Понедельник, 05 Ноя 2012, 14:47:35
sch779
Сообщений: 703
Репутация: 348

Сообщение # 210 | 23:24:23
Quote (JonMagon)
примеры ссылок в студию.
Да прав он!
Я об этом еще в прошлом году писал - в API необходимо указывать полный путь, включая названия категории/раздела и самого материала. Полная чушь! Зачем тогда указан полный цифровой идентификатор материала?!
В общем, очень неудобное API для всех модулей на основе каталогов - статьи/файлы/фотки и пр.
Стоит изменить название материала (не говоря уже о категории или разделе) и все - приплыли - ссылки уже нерабочие!
Хорошо хоть в форуме сделано по-уму - четко по цифровым идентификаторам!

Добавлено (13-Ноя-2012, 23:24:23)
---------------------------------------------
Сегодня, вдруг, выяснил что API-запросы, точнее - результаты их выполнения, кэшируются сервером uCoz как и информеры!
Более детально не стал выяснять, но время обновления составляет, по ощущениям, минут 10-15.
В связи с этим встает вопрос - почему частые API-запросы, в отличие от информеров, могут привести к блокированию IP-адреса за подозрение в DDOS-атаке?!

И вообще - из этой темы, что, "ушли" все более-менее сведущие в ucoz коллеги?!

Сообщество uCoz » Мастерская uCoz » Использование PHP и API на uCoz » Базовое API на uCoz
Поиск: