Kirlink API

(ver-0.3.1)

Содержание

1. Введение

2. Запросы

2.1. Регистрация

2.2. Авторизация

2.3. Работа с файлами

2.4. Работа с окнами

2.5. Управление аккаунтом

2.6. Поиск

Введение

Общение с сервером происходит в json формате. Кодировка UTF-8. Данные передаются POST или GET запросом. Все запросы принимаются по адресу:

http://kirlink.com/__ENGINE/lib/Ajax.php

Для идентификации пользователя, требуется передавать серверу логин и сессию (она выдается при авторизации) в массиве cookies.

Пример отправки запроса на создание ссылки:

{"mode":"createLink", "id":"new_0", "x":23, "y":30, "z":3000, "location":101, "full_location":"0_101"}

Получаем в случае успеха:

{"status":"ok", "type":"link", "last_id":"new_0", "id":8420}

В случае ошибки:

{"status":"error", "text":"текст ошибки"}

Идентификатор окна такой-же как и у иконки, которой оно принадлежит.

По всем техническим вопросам и ошибкам, можно писать на admin@kirlink.com

Регистрация

Проверка логина | почтового ящика GET

mode: check

login | email: pupkin | pupkin@gmail.com — проверка логина или почтового ящика, чтобы не были заняты и имена соответствовали правилам

Запрос: {"mode":"check", "login":"pupkin"}
Успешно: {"status":"ok", "type":"login", "login":"pupkin"}
Ошибка: {"status":"error", "type":"login", "login":"pupkin", "text":"Текст ошибки"}

Регистрация GET

mode: registration

login: pupkin — логин

email: pupkin@gmail.com — почтовый ящик

password: jfs37DOx — пароль

captcha: 386306 — капча

Запрос: {"mode":"registration", "login":"pupkin", "email":"pupkin@gmail.com", "password":"jfs37DOx", "captcha":386306}
Успешно: {"status":"ok", "action":"registration, "text":"Сообщение о том что код активации был выслан на email"}
Ошибка: {"status":"error", "action":"registration", "type":"password", "text":"Текст ошибки"}
При ошибке, type может принимать значения password, login, captcha — в зависимости от того какого типа ошибка произошла.

Активация GET

activate: 7gfhdf45p56gsdf0hjf4dfgbsder46j0456vqgh56tyhtryv56 — код активации, ранее высланный на почту

Обращение идет не к http://kirlink.com/__ENGINE/lib/Ajax.php, а на прямую http://kirlink.com/?activate=7gfhdf45p56gsdf0hjf4dfgbsder46j0456vqgh56tyhtryv56

При успехе, записывает в массив cookies значение сессии session и логин login

Авторизация

Войти GET

mode: enter

login: pupkin — логин

password: jfs37DOx — пароль

email: pupkin@gmail.com — почтовый ящик

Запрос: {"mode":"enter", "login":"pupkin", "password":"jfs37DOx"}
Успешно: {"status":"ok", "action":"enter", "session":"7gfhdf45p56gsdf0hjf4dfgbsder46j0456vqgh56tyhtryv56", "email":"pupkin@gmail.com"}
Ошибка: {"status":"error", "action":"enter", "text":"Текст ошибки"}
При успешном входе, возвращается значение сессии, которое используется для идентификации пользователя. Также в cookies записывается session и login.

Работа с файлами

Создать файл POST

mode: create

type: link — тип создаваемого файла (link | folder | txt)

id: new_0 — идентификатор, присвоенный файлу клиентом

x: 34 — в процентах от 0 до 100

y: 64 — в процентах от 0 до 100

z: 3045 — глубина иконки, целое число

location: 4938 — идентификатор папки в которой надо создать файл

full_location: 0_4938 — полный путь до папки в которой создается файл

Запрос: {"mode":"create", "type":"link", "id":"new_0", "x":34, "y":64, "z":3045, "location":4938, "full_location":"0_4938"}
Успешно: {"status":"ok", "action":"create", "type":"link", "last_id":"new_0", "id":3452}
Ошибка: {"status":"error", "action":"create", "type":"link", "text":"Текст ошибки"}

Рабочий стол, имеет идентификатор 0.

В случае успеха, возвращается идентификатор файла присвоенный ему сервером.

Параметр type может принимать следующие значения - link, folder, txt.

Копировать файл POST

mode: copy

type: link — тип копируемого файла (link | folder | txt | html | image | undefined)

id: 3452 — идентификатор копируемого файла

x: 34 — в процентах от 0 до 100

y: 64 — в процентах от 0 до 100

z: 3045 — глубина иконки, целое число

location: 4938 — идентификатор папки в которую копируем файл

full_location: 0_4938 — полный путь до папки в которую копируем файл

Запрос: {"mode":"copy", "type":"link", "id":3452, "x":34, "y":64", "z":3045, "location":4938, "full_location":"0_4938"}
Успешно: {"status":"ok", "action":"copy", "type":"link", "last_id":3452, "id":6734}
Ошибка: {"status":"error", "action":"copy", "type":"link", "text":"Текст ошибки"}

В случае успеха, возвращается идентификатор файла присвоенный ему сервером.

Параметр type может принимать следующие значения - link, folder, txt, html, image, undefined.

Вырезать файл POST

mode: cut

type: link — тип вырезаемого файла (link | folder | txt | html | image | undefined)

id: 3452 — идентификатор вырезаемого файла

x: 34 — в процентах от 0 до 100

y: 64 — в процентах от 0 до 100

z: 3045 — глубина иконки, целое число

location: 4938 — идентификатор папки в которую копируем файл

full_location: 0_4938 — полный путь до папки в которую копируем файл

Запрос: 
	{"mode":"cut", 
	 "type":"link",
	 "id":3452,
	 "x":34,
	 "y":64"
	 "z":3045, 
	 "location":4938, 
	 "full_location":"0_4938"}
                     
Успешно: {"status":"ok", "action":"cut", "type":"link"}
Ошибка: {"status":"error", "action":"cut", "type":"link", "text":"Текст ошибки"}

Удалить файл

mode: delete

id: 3624 — идентификатор файла

x: 34 — (необязательно)

y: 64 — (необязательно)

z: 3045 — (необязательно)

location: 4938 — идентификатор удаленной папки (необязательно)

Запрос: {"mode":"delete", "id":3624}
Успешно: {"status":"ok", "action":"delete", "id":3624}
Ошибка: {"status":"error", "action":"delete", "text":"Текст ошибки"}

Если при удалении вы хотите изменить координаты удаляемого файла, передайте значения x, y, z нового положения иконки. Например такое может произойти, если удалять не через контекстное меню, а перетаскиванием на окно корзины.

Если вы хотите переместить файл в удаленную папку, а не в саму корзину - укажите в параметре location идентификатор удаленной папки.

Восстановить файл

mode: undelete

id: 3624 — идентификатор файла

x: 34 — (необязательно)

y: 64 — (необязательно)

z: 3045 — (необязательно)

location: 4938 — идентификатор папки в которую восстанавливают файл (необязательно)

Запрос: {"mode":"undelete", "id":3624}
Успешно: {"status":"ok", "action":"undelete", "id":3624}
Ошибка: {"status":"error", "action":"undelete", "text":"Текст ошибки"}

Изменить название и/или адрес ссылки POST

mode: edit

id: 4562 — идентификатор ссылки

title: новое название — новое название файла (необязательно)

url: http://ya.ru/ — новый адрес ссылки (необязательно)

Запрос: {"mode":"edit", "id":4562, "title":"новое название", "url":"http://ya.ru/"}
Успешно: {"status":"ok", "action":"edit", "type":"title-url", "id":4562, "favicon":"data:image/png;base64,AAABAAEAE..AAEA"}
Ошибка: {"status":"error", "action":"edit", "type":"title-url", "text":"Текст ошибки"}

Возвращаемый type, будет зависить от того, какие изменения мы совершаем:

  "type":"url" — адрес ссылки

  "type":"title" — название файла

  "type":"title-url" — название и адрес ссылки

Адрес ссылки, можно изменить только у ссылки.

Если у ссылки был изменен адрес, то будет возвращен дополнительный параметр "favicon".

Изменить координаты окна или иконки POST

mode: coordinate

type: icon — для какого объекта изменить координаты (icon | window)

id: 4562 — идентификатор объекта

x: 34 — необязательно

y: 54 — необязательно

z: 2346 — необязательно

Запрос: {"mode":"coordinate", "id":4562, "x":34, "y":54, "z":2346}
Успешно: {"status":"ok", "action":"coordinate", "type":"icon"}
Ошибка: {"status":"error", "action":"coordinate", "type":"icon", "text":"Текст ошибки"}

Работа с окнами

Получить содержимое папки GET

mode: getContent

id: 3452 — идентификатор папки (-2 - открытые окна, -1 - свернутые папки, 0 - рабочий стол, trash - корзина, стандартные окна)

Запрос: {"mode":"getContent", "id":3452}
Успешно: 
	{"status":"ok", 
	 "type":"getContent", 
	 "content":
	    {"идентификатор №1 (ссылка)":
	        [
	         "название", 
	         "тип", 
	         "ссылка", 
	         "полный путь", 
	         "конечный путь", 
	         "x", 
	         "y", 
	         "фавиконка в формате base64", 
	         "доступ: личный доступ - 0, общий доступ - идентификатор файла"
	        ],
	     "идентификатор №2 (папка)":
	        [
	         "название", 
	         "тип", 
	         "ссылка", 
	         "полный путь", 
	         "конечный путь", 
	         "x", 
	         "y", 
	         "фавиконка в формате base64", 
	         "доступ: личный доступ - пустое значение, общий доступ - идентификатор файла", 
	         "x окна", 
	         "y окна", 
	         "z окна", 
	         "видимость окна: 1 - открыто, 0 - закрыто", 
	         "ширина %", 
	         "высота %"
	        ]
	    }
	}
Пример успешного запроса: 
	{"status":"ok", 
	 "type":"getContent", 
	 "content":
 		{3456:
 			[
 			 "Название ссылки", 
 			 "link", 
 			 "http://yandex.ru/", 
 			 "0_4938", 
 			 4938, 
 			 34, 
 			 68, 
 			 "data:image/png;base64,AAABAAEAE..AAEA", 
 			 3456
 			], 
 		6347:
 			[
 			 "Название папки", 
 			 "folder", 
 			 "/Название папки/", 
 			 "0_9246", 
 			 9246, 
 			 47, 
 			 72, 
 			 "", 
 			 "", 
 			 54, 
 			 83, 
 			 0, 
 			 56, 
 			 87
 			]
 		}
	}
Ошибка: {"status":"error", "type":"getContent", "text":"Текст ошибки"}

Идентификатор папки может принимать значения стандартных окон: winVersion, winRules, winOnload, winAccounts, winAbout, winSettings. Тогда будет возвращен html-содержимое этого окна.

Для получения содержимого корзины, в качестве идентификатора нужно передать значение trash.

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

Возвращаемая информация о свернутых окнах, немного отличается Уровень свернутого окна можно определить из значения

Состояние окна GET

mode: winStatus

type: open — состояние окна (open | close | toggle | untoggle)

id: 4562 — идентификатор окна

Запрос: {"mode":"winStatus", "type":"open", "id":4562}
Успешно: {"status":"ok", "action":"open", "type":"winStatus"}
Ошибка: {"status":"error", "action":"open", "type":"winStatus", "text":"Текст ошибки"}

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

Размеры окна GET

mode: winResize

id: 4562 — идентификатор окна

w: 45 — ширина (в процентах от экрана)

h: 67 — высота (в процентах от экрана)

Запрос: {"mode":"winResize", "id":4562, "w":45, "h":67}
Успешно: {"status":"ok", "action":"resize", "type":"window"}
Ошибка: {"status":"error", "action":"resize", "type":"window", "text":"Текст ошибки"}

Управление аккаунтом

Восстановить пароль GET

mode: remind

email: pupkin@gmail.com — почтовый ящик на который следует выслать новый пароль

Запрос: {"mode":"remind", "email":"pupkin@gmail.com"}
Успешно: {"status":"ok", "action":"remind", "text":"Сообщение о том что новый пароль выслан на email"}
Ошибка: {"status":"error", "action":"remind", "text":"Текст ошибки"}

Изменить пароль GET

mode: changePassword

old: jfs37DOx — Старый пароль

new: ls83ks92 — Новый пароль

Запрос: {"mode":"changePassword", "old":"jfs37DOx", "new":"ls83ks92"}
Успешно: {"status":"ok", "action":"changePassword", "text":"Сообщение о том что новый пароль выслан на email"}
Ошибка: {"status":"error", "action":"changePassword", "text":"Текст ошибки"}

Поиск

Сменить поисковик POST

mode: changeSearch

title: yandex — может принимать следующие значения - yandex, google, wikipedia

Запрос: {"mode":"search", "title":"yandex"}
Успешно: {"status":"ok", "action":"change", "type":"search"}
Ошибка: {"status":"error", "action":"change", "type":"search", "text":"Текст ошибки"}