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


SOFTOLAB_COM
Сообщений: 1363
Репутация: 777

Сообщение # 211 | 23:11:13
api ведет так себя только при включенном чпу, а все потому что api представляет из себя не полноценный модуль, а "надстройку" к коду существующих модулей, отсюда и ноги растут у многих "багов".
Многие условия вообще не были реализованы, так что не стоит удивляться если api при не верном запросе не выдаст ошибку, а просто кинет на главную модуля или прямо в материал.

Благодарности можно оставить — в репутации.
Помощью в ЛС не занимаюсь, есть форум.
Занимаюсь сайтами на платной основе.
Шаманю на php и mysql с использованием бубна 80 lvl.
Сообщение отредактировал SOFTOLAB_COM - Суббота, 17 Ноя 2012, 23:12:50
avz
Сообщений: 35
Репутация: 1

Сообщение # 212 | 15:59:00
Привет!
Подскажите, вот есть код

<div id="real"></div>
<script type="text/javascript">
$.get(
'http://mysite.ru/api/board/1',
function(data){
var mydata = new Array();
$('name', data).each(function(){
mydata[$(this).text()] = $(this).next().text();
});
$('#real').html(''+mydata['DATE']+''+mydata['TITLE']+'');
},
'xml'
);
</script>

Здесь выводится только один материал. Что нужно добавить, чтобы выводились последние 10 или 20 материалов?
sch779
Сообщений: 703
Репутация: 348

Сообщение # 213 | 19:23:38
А зачем в адресе запроса "1" в конце?! Откуда она вообще взялась?
Просто "http://mysite.ru/api/board/" - будут выданы последние активные объявления.
А дальше - уже сам их разбирай и выводи нужное количество.
avz
Сообщений: 35
Репутация: 1

Сообщение # 214 | 11:19:29
Quote (sch779)
А зачем в адресе запроса "1" в конце?! Откуда она вообще взялась?

Это раздел доски объявлений. Т.е. нужно выводить материалы определенного раздела.
Ferro7
Сообщений: 285
Репутация: 230

Сообщение # 215 | 18:03:48
Quote (avz)
Здесь выводится только один материал. Что нужно добавить, чтобы выводились последние 10 или 20 материалов?

Что бы получить более одного материала, надо составить массив, используя в качестве сепаратора <name>MATERIAL_ID</name>
Вот так:

Code
<div id="real"></div>     
<script type="text/javascript">     
    $.get(     
      'http://mysite.ru/api/board/1',     
      function(data){     
        var mydata = new Array();     
        var i = 0; // индекс массива материалов
        $('name', data).each(function(){     
          if($(this).text()=='MATERIAL_ID') mydata[i++] = new Array(); // массив материалов
          mydata[i-1][$(this).text()] = $(this).next().text();     
        });
        var htm = '';
        for(i in mydata) htm += (''+mydata[i]['DATE']+''+mydata[i]['TITLE']+'');     
        $('#real').html(htm);
      },     
      'xml'     
    );
</script>

Вы полюбили меня. Здесь я. (с)
Сообщение отредактировал Ferro7 - Среда, 28 Ноя 2012, 18:15:12
avz
Сообщений: 35
Репутация: 1

Сообщение # 216 | 10:21:14
Quote (Ferro7)
Что бы получить более одного материала, надо составить массив, используя в качестве сепаратора MATERIAL_ID
Ferro7, спасибо, все работает.
Glozhk
Сообщений: 2
Репутация: 16

Сообщение # 217 | 06:59:19
При GET запросе на /api/index/15 выдаёт "Доступ запрещён". Как передать нужные данные, чтобы получить его?
SOFTOLAB_COM
Сообщений: 1363
Репутация: 777

Сообщение # 218 | 19:27:08
Glozhk, у вас права не настроены в настройках групп.

Благодарности можно оставить — в репутации.
Помощью в ЛС не занимаюсь, есть форум.
Занимаюсь сайтами на платной основе.
Шаманю на php и mysql с использованием бубна 80 lvl.
Fenriks_2012
Сообщений: 2
Репутация: 0

Сообщение # 219 | 01:58:30
Будет ли api распространяться на личные сообщения пользователя?

Добавлено
---------------------------------------------
Так же хотел бы сделать предложения (не знаю где у вас тут раздел предложений)

/index/14-id-0 -- где id - это ид сообщения

возможно было бы очень интересно сделать так:

/index/14-id-1 -- где id - это ид пользователя (просмотр истории сообщений в целом)

Было бы полезно многим :)

Сообщение отредактировал Fenriks_2012 - Воскресенье, 30 Дек 2012, 01:59:22
Makar3000
Сообщений: 177
Репутация: 47

Сообщение # 220 | 03:03:46
Цитата (Fenriks_2012)

/index/14-id-1 -- где id - это ид пользователя (просмотр истории сообщений в целом)

Было бы полезно многим :)


Кто мешает пользоваться циклом?

Знание языков: PHP, MySQL, Javascript, HTML, CSS.
В данный момент работаем над новой системой управления нашей веб-студии Sp-Arts
ZevZ
Сообщений: 3
Репутация: 0

Сообщение # 221 | 02:13:57
А возможно ли передавать данные через api на другой сайт сайт который не в системе ucoz?
Miss_Esq
Сообщений: 13859
Репутация: 4159
Уровень замечаний:

Сообщение # 222 | 02:18:30
ZevZ, Маловероятно, нет ...

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

Сообщение # 223 | 19:02:11
Цитата (ZevZ)
А возможно ли передавать данные через api на другой сайт сайт который не в системе ucoz?

Смотря что конкретно вам надо. АПИ создано для любого взаимодействия со своим сайтом на юкозе через любой скрипт. На данный момент - это только получение данных.

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

Сообщение # 224 | 01:46:34
Цитата (ZevZ)
А возможно ли передавать данные через api на другой сайт сайт который не в системе ucoz?
Запросто!
Пишите php-скрипт, который размещаете на любом сервере и который будет делать запросы к API нужного сайта - и получаете из любого места нужные данные, которые позволяет вернуть API.
mathProgr
Сообщений: 6
Репутация: 1

Сообщение # 225 | 23:46:06
Здравствуйте!

Отправляю запрос на
http://SITE_NAME/api/load/0-0-2-0-17
Выдает только 10 первых материалов. Есть ли страница, куда отправить запрос для вывода всех материалов?
Сообщество uCoz » Мастерская uCoz » Использование PHP и API на uCoz » Базовое API на uCoz
Поиск: