welcome: please sign in
location: Diff for "u/Stiletto/BnW/API"
Differences between revisions 1 and 14 (spanning 13 versions)
Revision 1 as of 2011-07-31 09:27:53
Size: 1239
Editor: Stiletto
Comment:
Revision 14 as of 2014-06-05 11:52:47
Size: 3161
Comment: Stop shitediting ffs
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
HTTP-API бнвача довольно прост для любого, кто осилил [[../Интерфейсы/redeye|redeye-интерфейс]] бнвача. Функции API повторяют его команды. Все запросы делаются через аргументы POST или GET, на выбор, ответы выдаются в виде JSON. === API ===
Функции HTTP-API [[../|BnW]] дублируют команды [[../Интерфейс_redeye|красноглазого интерфейса]] (используются только длинные версии команд и аргументов). Взаимодействие с сервером происходит с помощью GET или POST запросов (на выбор пользователя), ответы выдаются в виде [[https://ru.wikipedia.org/wiki/JSON|JSON]].
Line 3: Line 4:
Посмотреть список функций:
{{{ http://bnw.im/api/ }}}
В зависимости от успешности выполнения запроса, параметр {{{ok}}} в ответе принимает значения {{{true}}} или {{{false}}}. Если запрос неуспешен, то параметр {{{desc}}} будет содержать причину ошибки. Если функция требует авторизации, необходимо передать параметр {{{login}}} равный loginkey пользователя, который можно получить, отправив боту команду {{{login}}}.
Line 6: Line 6:
Пример show:
{{{ http://bnw.im/api/show?club=bnw }}}
Как ви таки видите, аргументы функций api совпадают с **длинными** аргументами redeye-интерфейса, ога
==== Примеры запросов ====
||<:#E0E0FF> Команда||<:#E0E0FF> URL запроса||<:#E0E0FF> Ответ||
||Список команд||{{{https://bnw.im/api/}}}||~-{"commands": ["feed", "comment", "show", "clubs", "tags", "recommend", "subscriptions/del", "today", "pm", "stat", "subscriptions", "update", "blacklist", "passlogin", "interface", "post", "vcard", "on", "search", "subscriptions/add", "off", "register", "userlist", "delete"], "ok": true}-~||
||Создание поста||{{{https://bnw.im/api/post?text=пук+уау&login=1234567890abcdef}}}||~-{"ok": true, "id": "0XYNTA", "desc": "Message #0XYNTA has been delivered to 0 users.-~ {{{https://bnw.im/p/0XYNTA"} }}}||
||Показать пост||{{{https://bnw.im/api/show?message=ZG24XK}}}||~-{"messages": [{"tags": ["simplified"], "text": "Все команды жуйкоинтерфейса теперь нечувствительны к регистру", "anoncomments": "", "date": 1342214311.7753761, "clubs": ["@", "bnw"], "replycount": 4, "user": "stiletto", "anonymous": "", "recommendations": [], "indexed": true, "id": "ZG24XK"}], "cache_public": true, "cache": 5, "ok": true, "format": "messages"}-~||
||Подписка на пост||{{{https://bnw.im/api/subscriptions/add?message=ZG24XK&login=1234567890abcdef}}}||~-{"ok": true, "desc": "Subscribed (4 replies)."}-~||
Line 10: Line 13:
Если функция требует авторизации, ей надо передавать параметр login, в который пихается логинкей, например так:
{{{ http://bnw.im/api/post?text=Я+ебу+гусей&login=1234567890abcdef }}}

Если параметры передать криво (несуществующий, например), вам ответом будет страница с exception'ом. Это в общем-то так и есть, это нормально :3
==== Примеры ошибочных запросов ====
||<:#E0E0FF> Команда||<:#E0E0FF> URL запроса||<:#E0E0FF> Ответ||
||Несуществующая команда||{{{https://bnw.im/api/kkk}}}||~-{"ok": false, "desc": "unknown command"}-~||
||Попытка рекомендации несуществующий поста||{{{https://bnw.im/api/recommend?message=ABC&login=1234567890abcdef}}}||~-{"ok": false, "desc": "No such message."}-~||
||Не указан/неправильный loginkey||{{{https://bnw.im/api/pm?user=stiletto&text=oh+hai}}}||~-{"ok": false, "desc": "Only for registered users"}-~||

API

Функции HTTP-API BnW дублируют команды красноглазого интерфейса (используются только длинные версии команд и аргументов). Взаимодействие с сервером происходит с помощью GET или POST запросов (на выбор пользователя), ответы выдаются в виде JSON.

В зависимости от успешности выполнения запроса, параметр ok в ответе принимает значения true или false. Если запрос неуспешен, то параметр desc будет содержать причину ошибки. Если функция требует авторизации, необходимо передать параметр login равный loginkey пользователя, который можно получить, отправив боту команду login.

Примеры запросов

Команда

URL запроса

Ответ

Список команд

https://bnw.im/api/

{"commands": ["feed", "comment", "show", "clubs", "tags", "recommend", "subscriptions/del", "today", "pm", "stat", "subscriptions", "update", "blacklist", "passlogin", "interface", "post", "vcard", "on", "search", "subscriptions/add", "off", "register", "userlist", "delete"], "ok": true}

Создание поста

https://bnw.im/api/post?text=пук+уау&login=1234567890abcdef

{"ok": true, "id": "0XYNTA", "desc": "Message #0XYNTA has been delivered to 0 users. https://bnw.im/p/0XYNTA"} 

Показать пост

https://bnw.im/api/show?message=ZG24XK

{"messages": [{"tags": ["simplified"], "text": "Все команды жуйкоинтерфейса теперь нечувствительны к регистру", "anoncomments": "", "date": 1342214311.7753761, "clubs": ["@", "bnw"], "replycount": 4, "user": "stiletto", "anonymous": "", "recommendations": [], "indexed": true, "id": "ZG24XK"}], "cache_public": true, "cache": 5, "ok": true, "format": "messages"}

Подписка на пост

https://bnw.im/api/subscriptions/add?message=ZG24XK&login=1234567890abcdef

{"ok": true, "desc": "Subscribed (4 replies)."}

Примеры ошибочных запросов

Команда

URL запроса

Ответ

Несуществующая команда

https://bnw.im/api/kkk

{"ok": false, "desc": "unknown command"}

Попытка рекомендации несуществующий поста

https://bnw.im/api/recommend?message=ABC&login=1234567890abcdef

{"ok": false, "desc": "No such message."}

Не указан/неправильный loginkey

https://bnw.im/api/pm?user=stiletto&text=oh+hai

{"ok": false, "desc": "Only for registered users"}

u/Stiletto/BnW/API (last edited 2014-06-05 11:52:47 by Кур_Кумит)