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


sch779
Сообщений: 703
Репутация: 348

Сообщение # 76 | 15:14:51
Quote (fflesh)
И вообще, ты понял что написал? Как массив данных, коим и является json, может или не может “нормально отображается в браузерах” вообще?

Я имел в виду ТОЛЬКО XML-данные, которые возвращает API - если дать API-запрос прямо из адресной строки браузера, то в результате получишь XML-данные, которые браузером будут грамотно отображены - в виде дерева со всеми ветками и листочками. Т.е., даже уже в таком виде можно с этими данными вполне комфортно работать "в ручном режиме".
Зачем в ручном режиме обрабатывать результат API, который предназначается для автоматических запросов - уже другой вопрос.

Quote (fflesh)
А вообще - почитай ка API и инструменты YouTube - полезно будет ...

Т.е., насколько я понял из твоего ответа, нормальный вид youtube-плеера в u-окне возможен ТОЛЬКО с помощью их-же API?

Quote (fflesh)
За это отвечает параметр «autoplay»

Увы! sad Проверил во всех браузерах (IE-8/9, Opera, Hrome, FF) - не работает этот параметр. Код плеера стандартный:
Code
<object style="height: 390px; width: 640px">
<param name="movie" value="http://www.youtube.com/v/hqjgS0hdrEc?version=3">
<param name="allowFullScreen" value="true">
<param name="allowScriptAccess" value="always">
<param name="autoplay" value="true">
<embed src="http://www.youtube.com/v/hqjgS0hdrEc?version=3" type="application/x-shockwave-flash" allowfullscreen="true" allowScriptAccess="always" autoplay="true" width="640" height="390">
</object>

Добавлено (26-Май-2011, 15:14:51)
---------------------------------------------

Quote (fflesh)
А вообще - почитай ка API и инструменты YouTube - полезно будет ...

Спасибо! Читаю, разбираюсь - вроде-бы получается. По крайней мере, про autoplay - понятно куда его вставлять.
fflesh
Сообщений: 1784
Репутация: 1314

Сообщение # 77 | 15:41:00
sch779,
Quote (sch779)
Я имел в виду ТОЛЬКО XML-данные, которые возвращает API - если дать API-запрос прямо из адресной строки браузера, то в результате получишь XML-данные, которые браузером будут грамотно отображены - в виде дерева со всеми ветками и листочками. Т.е., даже уже в таком виде можно с этими данными вполне комфортно работать "в ручном режиме".

А для чего это практически? ... Как это использовать в “ручном режиме”? Зачем мне это дерево? Мне не нужно его наблюдать что бы понят что оно из себя представляет. Мне нужно другое - простой, быстрый и точный доступ к запрошенным данным. Без навороченных скриптов только для того чтобы извлечь нужную мне информацию.
...

Quote (sch779)
.е., насколько я понял из твоего ответа, нормальный вид youtube-плеера в u-окне возможен ТОЛЬКО с помощью их-же API?

- Нет, но там описаны все, ну или большинство, параметров о которых ты спрашивал.

Quote (sch779)
Читаю, разбираюсь - вроде-бы получается. По крайней мере, про autoplay - понятно куда его вставлять.

... Добавляются, думал что очевидно, в сам адрес файла ... То бишь вот так:
Code
http://www.youtube.com/v/Lju0qoEK6QY?rel=0&autoplay=1
... И так далее, «&» + «параметр=» + «значение» ...
...

Всё написанное выше - моё личное мнение и на абсолютную правоту не претендует.
Есть вопросы лично ко мне - пиши сюда: http://likbezz.ru/forum/8
NeoGame12
Сообщений: 51
Репутация: 6

Сообщение # 78 | 21:12:29
Раз уж в апи модулей выводятся материалы только первой страницы и всего десять штук (и скорее всего больше не будет), было бы не плохо добавить данные по переключателю страниц, тоесть кол-во, текущая страница и.т.д
sch779
Сообщений: 703
Репутация: 348

Сообщение # 79 | 01:25:19
Quote (NeoGame12)
Раз уж в апи модулей выводятся материалы только первой страницы и всего десять штук

Кто такое сказал?!
- можно взять любую страницу (номер задается в url страницы)
- кол-во материалов на странице определяется не API, а настройками соответствующих модулей

Что есть "текущая страница"? Если страница, которую пользователь просматривает в данный момент, то получить ее через API очень просто - достаточно с минимальными переделками передать в API адрес текущей страницы.
В форуме последнюю страницу в теме получить очень легко - есть отдельный запрос, а из url полученной страницы легко выделяется ее номер, что дает нам общее кол-во страниц в теме.
В других модулях не смотрел - но, думаю, что и там не намного сложнее.

Да, согласен, можно было бы в API добавить некоторые сервисные запросы, облегчающие дальнейшую обработку материалов.
Но, уже сейчас можно вполне комфортно работать на основе имеющихся запросов!
fflesh
Сообщений: 1784
Репутация: 1314

Сообщение # 80 | 02:37:05
sch779,
Quote (NeoGame12)
Раз уж в апи модулей выводятся материалы только первой страницы и всего десять штук (и скорее всего больше не будет), было бы не плохо добавить данные по переключателю страниц, тоесть кол-во, текущая страница и.т.д

Поддерживаю.
Общее количество страниц, например в модуле новости, достаточно сложно узнать. Нужны данные, хотя бы по кол-ву, дабы было от чего отталкиваться.
...
Quote (sch779)
API очень просто - достаточно с минимальными переделками передать в API адрес текущей страницы.

Да, адрес следующей страницы действительно легко вычислить, но существует ли она? Вот в чём вопрос.
И что самое интересное (!!!) если всего страниц, например, 5, а ты делаешь запрос на шестую (заведомо несуществующую) - выдаётся первая ..... Так что пробить на отсутствие данных ... не прокатит, во всяком случае просто.
...
Quote (sch779)
В других модулях не смотрел - но, думаю, что и там не намного сложнее.

- Посмотри ... ) мне пока ничего дельного не пришло, вдруг тебе придёт )))
...

Всё написанное выше - моё личное мнение и на абсолютную правоту не претендует.
Есть вопросы лично ко мне - пиши сюда: http://likbezz.ru/forum/8
Сообщение отредактировал fflesh - Суббота, 04 Июн 2011, 06:54:35
NeoGame12
Сообщений: 51
Репутация: 6

Сообщение # 81 | 10:44:39
sch779, вы меня не правильно поняли, под первой я подразумиваю любую страницу с материалами, в данном случае 1, да, кстати, по поводу кол-ва страниц, текущую это понятно что можно выризать из ссылки, а кол-во всех? это надо делать отдельной запрос и всё ради какого-то маленького кол-ва страниц, легче уже добавить эти апи данные на страницу, и делать всё одним запросом
Сообщение отредактировал NeoGame12 - Суббота, 04 Июн 2011, 10:49:20
sch779
Сообщений: 703
Репутация: 348

Сообщение # 82 | 12:07:02
Quote (fflesh)
Посмотри ... ) мне пока ничего дельного не пришло, вдруг тебе придёт )))

Да, ты прав - в модулях кроме форума очень затруднительно работать со страницами!

Там есть только один вариант определения максимального кол-ва страниц - запрашиваем все страницы по порядку возрастания их номеров и контролировать ID первого материала на запрошенной странице. Как только он стал равен ID первого материала на первой странице - значит запросили несуществующую страницу.
При большом кол-ве материалов - очень проблематично! И, кстати, в первую очередь - для самого сервера - ненужная нагрузка на него в виде лишних запросов.
Нелогично, как то, получается - разработчики все время твердят об оптимизации запросов к серверу и тут же подкладывают такую "свинью"! surprised
fflesh
Сообщений: 1784
Репутация: 1314

Сообщение # 83 | 12:28:12
sch779,
Quote (sch779)
При большом кол-ве материалов - очень проблематично! И, кстати, в первую очередь - для самого сервера - ненужная нагрузка на него в виде лишних запросов.

Ну, не так уж и проблематично, заносить ID стартовой для скрипта в переменную, той же функции, а при запросе данных проверять первое вхождение, и если совпадение есть, return; ... Но, как написано выше - это лишние движения, дополнительный запрос, усложняющие скрипт, например - динамическая погрузка комментариев .... или новостей на главную ...
...
Quote (sch779)
Нелогично, как то, получается - разработчики все время твердят об оптимизации запросов к серверу

Где это “твердят”? Ссылку.
- Ограничивают - это да. Про оптимизацию ... что-то не слышал ... )
...

Всё написанное выше - моё личное мнение и на абсолютную правоту не претендует.
Есть вопросы лично ко мне - пиши сюда: http://likbezz.ru/forum/8
Сообщение отредактировал fflesh - Суббота, 04 Июн 2011, 17:31:46
Komoff
Сообщений: 595
Репутация: 276

Сообщение # 84 | 03:46:54
Я ещё не разобрался в этом, тапками не кидаться. biggrin
Вопрос, а этот API дает возможность авторизации на сайте по прямому переходу?
Ну через ссылку типа: http://адрес_сайта/api/password=такой-то&login=такой-то
joncofe
Гуру
Сообщений: 110
Репутация: 46

Сообщение # 85 | 11:15:52
Diletant_NZ, нет, но вы можете это сделать из скрипта (php, perl и т..п) отсылкой POSTа на action формы авторизации.
Magistr777
Сообщений: 1
Репутация: 0

Сообщение # 86 | 10:13:02
Уважаемый fflesh, не подскажете, как тоже самое проделать в PHP. Вытащить несколько данных с определенной страницы API и вставить в шаблон. Будут Вам многие благодарны. Заранее Спасибо!

Quote (fflesh)
<script type="text/javascript"> var url='/api/index/8-$UID$'; $.get(url,function(data){ var user_avatar=$('member',data).text().split('USER_AVATAR')[1].split('USER_')[0]; var user_email=$('member',data).text().split('USER_EMAIL')[1].split('USER_')[0]; var user_birthday=$('member',data).text().split('USER_BIRTHDAY')[1].split('USER_')[0]; alert(user_avatar+'\n'+user_email+'\n'+user_birthday); },'xml'); </script>
Сообщение отредактировал Magistr777 - Пятница, 17 Июн 2011, 10:24:33
КВинС
Сообщений: 47
Репутация: 6
Уровень замечаний:

Сообщение # 87 | 03:40:03
Классная штука
Сделал себе
http://vkontakte.ru/app2383248
Причем благодаря гибкости API можно для любого модуля
+ список др
+ список онлайн
Здорово короче

Могу и вам
Но не за так
biggrin

lsdsigma
Сообщений: 14
Репутация: 11

Сообщение # 88 | 16:28:14
Можно ли с помощью API вывести список статей категории на страницах самих статей?
upd по аналогии с тем, что тут уже делали, я смог с горем пополам "вытащить" ссылку на первый материал в списке. Но вот остальное достать не получается. То есть по одному их достать я могу, но чтобы все сразу - никак не выходит. Мастера js, выручайте happy
Code

<script type="text/javascript">
var url='/api/publ/1';
$.get(url,function(data){
var name=$('member',data).text().split('TITLE')[1].split('MESSAGE')[0];
var url=$('member',data).text().split('ENTRY_URL')[1].split('CATEGORY_NAME')[0];
$('.cat').html('<a href="'+url+'">'+name+'</a>');
},'xml');
</script>

Сообщение отредактировал lsdsigma - Суббота, 25 Июн 2011, 23:30:03
SauronGreat
Сообщений: 1
Репутация: 0

Сообщение # 89 | 23:10:04
Доброй ночи всем.
Хм, кто может уставшему моддеру БФМЕ объяснить, можно ли сделать информер (или как это правильно назвать..) последних сообщений форума с помощью API (отображение оного не на самом форуме, см. мой сайт))? Просто стандартный информер обновляется долговато, иногда это напрягает сильно.

vicik_SH
Сообщений: 53
Репутация: 4

Сообщение # 90 | 00:03:50
Здравствуйте!
Наверное многие желают создать свое собственное IFrame приложение Вконтакте с сайта который на uCoz, хотелось бы получить в этой сфере помощь от знающих людей которые смогли бы в этом помочь всем желающим.

API и модуль load как с этого модуля создать полноценное отображение как и на сайте информации для того что бы оно выводило все данные в IFrame приложение

А что выберешь ты:кино онлайн или смотреть фильмы онлайн ?
Сообщество uCoz » Мастерская uCoz » Использование PHP и API на uCoz » Базовое API на uCoz
Поиск: