Единый форум поддержки

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.



API MyBB

Сообщений 61 страница 80 из 279

61

Deff написал(а):

BD, - База Данных, простейший пример - напоминалка в Админке на Rusff (удобная весчь) - так считал из топика и вставил - а так - размещай на партнёрке... ксать и настройки твоих скриптов(загружаемых)  можно воткнуть в топик - ты же кэширование заказал ...(Я уже не говорю об инфе, кто и за что поставил плюсы, наградной лист, магазин - кто и что купил...а так открыл тему с ником... там и награды и кто и за что и т.д

Круто :)
Но записи на форум не будет в моих предложениях, см пост выше.

0

62

RUSSIAN_GOBLIN написал(а):

rawurldecode(); и urldecode(); не так расшифровывают, как расшифровывает в javascript функция decodeURIComponent();

Хм - должно быть что-то симметричное - поскольку поисковику в запрос на сервер стандартное кодирование - ищи запрос в поисковик

0

63

Deff написал(а):

http://qps.ru/a5Q4i
rawurlencode
RawUrlEncode

Не уверен что это, то что нужно, см. выше.

0

64

RUSSIAN_GOBLIN
Я говорю нун содрать аналог поискового запроса (Хоть с того же mybb
похож конвертирование в UTF-8 c последующим escape (можа и вру

Отредактировано Deff (Пт, 16 Мар 2012 13:55:11)

0

65

4. Доступ к HTML-контенту

Аргумент -> data
Значение -> html

Возвращает строку/массив с html-контентом (в некоторых случаях и с др. данными) заданным значением обязательного дополнительного аргумента.

Доп. аргументы:

Аргумент -> area
Значение -> announcement - возращает HTML-код поля Объявление, даже если в админке указано - не показывать объявление, если поле объявления пусто - то пустая текстовая строка.
Значение -> rules - возвращает НТМL-код правил, если их нет - пустая текст. строка.

Аргумент -> topicId
Значение -> идентификационный номер темы
Возращает массив содержищий:
- UserID автора темы,
- время создания темы в формате кол-ва сек с начала эпохи UNIX,
- содержимое "<div id="poll-special"></div>" включая сам этот тег с закрывающим если есть в теме опрос, иначе пустая текстовая строка.
- содержимое  первого сообщения в теме, т.е. содержимое "<div class="post-content"></div>" включая сам этот тег с закрывающим
- UserID автора последнего сообщения в теме, если в теме одно сообщение - то UserID автора темы,
- время создания последнего сообщения в теме в формате кол-ва сек с начала эпохи UNIX,
- содержимое  последнего сообщения в теме, т.е. содержимое "<div class="post-content"></div>" включая сам этот тег с закрывающим. Если в теме одного сообщение, то возращает содержимое этого единственного сообщения.

Ключи, использумые для запросов с аргументом  topicId:
id - идентификационный номер (UserID) автора темы
time - дата создания темы, кол-во сек с начала эпохи UNIX
poll - содержимое "<div id="poll-special"></div>" включая сам этот тег с закрывающим если есть в теме опрос, иначе пустая текст. строка.
postFirst - содержимое первого сообщения в теме, т.е. содержимое "<div class="post-content"></div>" включая сам этот тег с закрывающим.
autorIdPostLast - идентификационный номер автора последнего сообщения в теме, если в теме одно сообщение, то UserID автора темы
timePostLast - дата создания последнего сообщения в теме, кол-во сек с начала эпохи UNIX
postLast - содержимое последнего сообщения в теме, т.е. содержимое "<div class="post-content"></div>" включая сам этот тег с закрывающим, если в теме одно сообщение, то возвращет НТМL-код этого единственного сообщения.

Примеры:
Запрос:

Код:
http://forum.mybb.ru/api.php?data=html&area=rules

Ответ:

Код:
{"rules":"Введите ваши правила."}

Запрос:

Код:
http://forum.mybb.ru/api.php?data=html&area=announcement

Ответ:

Код:
{"rules":"Введите ваше объявление."}

Запрос:

Код:
http://forum.mybb.ru/api.php?data=html&topicId=30034

Ответ:

Код:
{"id":"8753","time":"1331830454","poll":"","postFirst":"<div id="p746254-content" class="post-content"><p><strong>Эта тема создана для обсуждения будущего API МуВВ.</strong><br />Подробнее узнать о том, что же такое API - можно в <a href="http://qps.ru/U30gq" rel="nofollow" target="_blank">Википедии</a>.</p><p>Делаем свои предложения.</p><p class="lastedit">Отредактировано RUSSIAN_GOBLIN (Ср, 14 Мар 2012 14:23:47)</p></div>","autorIdPostLast":"20787","timePostLast":"1331896454","postLast":"<div id="p746786-content" class="post-content"><p><strong>RUSSIAN_GOBLIN</strong><br />Я говорю нун содрать аналог поискового запроса (Хоть с того же mybb<br />похож конвертирование в UTF-8 c последующим escape (можа и вру</p><p class="lastedit">Отредактировано Deff (Вчера 20:55:11)</p></div>"}

Получение только нужных данных для запросов с аргументом  topicId:
Это возможно при использовании доп. аргументов со значением 1.

Пример:
Запрос:

Код:
http://forum.mybb.ru/api.php?data=html&topicId=30034&id=1&time=1&postFirst=1

Ответ:

Код:
{"id":"8753","time":"1331830454","postFirst":"<div id="p746254-content" class="post-content"><p><strong>Эта тема создана для обсуждения будущего API МуВВ.</strong><br />Подробнее узнать о том, что же такое API - можно в <a href="http://qps.ru/U30gq" rel="nofollow" target="_blank">Википедии</a>.</p><p>Делаем свои предложения.</p><p class="lastedit">Отредактировано RUSSIAN_GOBLIN (Ср, 14 Мар 2012 14:23:47)</p></div>"}

Возвращает: UserID автора темы, дату создания темы и нтмл-код первого сообщения в теме.

Три важных примечания:
1. В БД сервиса тексты сообщений хранятся с bbcode, а возвращаются в ответах на запросы тексты сообщений с НТМL-конструкциями, на которые заменяются эти bbcode.
2. Возвращаемые НТМL-коды должны быть в виде строки, т.е. без переносов строк, знаков табуляций и лишних пробелов.
3. Необходимо экранировать двойные кавычки в HTML-кодах, т.к. JSON обрамляет в них значения в ответах.

+2

66

...  :flirt:

Отредактировано Deff (Пт, 16 Мар 2012 19:26:33)

0

67

ёмаё, вы побойтесь бога а... у обычного пользователя после прочтения 2-ой странице калпак поедет)))
я вот, что то увлекся и решил написать  http://i039.radikal.ru/0806/ec/a5ffc6d7cfd9.gif

0

68

kosoy

:glasses: Думаю Aдмин тоже уже жалеет, что похвалил....  :D  (Хотел вспомнить про ... лан - помолчу

0

69

надо составить список всех скриптов, в которых мы бы хотели применить API, чтобы ничего не упустить при составлении его

0

70

Romych, займись этим ;)
Узнай какие скрипты сейчас используют аякс/фреймы, и какие данные они собирают, что бы сделать эти данные доступными средствами API. Плюс надо учесть ещё и не созданные скрипты подобного рода, т.е. нужно понять какие ещё данные могут быть востребованы для самых различных скриптов.

0

71

По большому счету нужны три варианта запросов

1. Параметров
2. чтение/запись НТМL контента в сессии текущего пользователя
3. Чтение/запись/редактирование  и создание Тем от имени Forum_Bota

Отредактировано Deff (Сб, 17 Мар 2012 14:06:10)

0

72

Все эти запросы на получение информации. Логичнее было бы разделить их на get и set. Если эта штука выстрелит, можно будет составить запросы на выполнение каких-то действий: обновить инфу пользователю, переместить тему и т.п.

Не забудьте про подписи.

Рад, что за API взялись.

0

73

Duka написал(а):

Логичнее было бы разделить их на get и set

Deff написал(а):

3. Чтение/запись/редактирование  и создание Тем от имени Forum_Bota

Данный автоаккаунт отделён от текущей сессии

Отредактировано Deff (Сб, 17 Мар 2012 14:05:10)

0

74

Duka написал(а):

Все эти запросы на получение информации.

Такая однобокость моих предложений по API предопределена сообщением Admin'a в этой теме: Почему в Аякс - Запросах русские Символы отражаются Кракозябрами ?

Admin написал(а):

запрашивать HTML страницы аяксом остается не лучшей идеей. Во-первых это неоправданная нагрузка, а во-вторых лишний трафик для пользователя.

Если есть необходимость в получении определенных данных, то лучше сделать API. На примере export.php, но для более широких целей. Если есть желание, то можешь написать список методов, с указанием входных и возвращаемых данных. В принципе, если будет подробное описание того, что требуется скриптерам, – я готов это реализовать.

Как такое API может работать, я описал в этой теме, сообщение №27.

О более полноценном API, скорее всего, можно только мечтать.

Duka написал(а):

Не забудьте про подписи.

+1

Добавлю в исправлениях.

Deff написал(а):

1. Параметров
2. чтение/запись НТМL контента в сессии текущего пользователя
3. Чтение/запись/редактирование  и создание Тем от имени Forum_Bota

Расшифруй подробней первый пункт.

0

75

Это то что ты хочешь получать в одном пакете, в отрыве от страницы, к примеру, - данные пользователя
ip, аватары, группа,  и т.д, т.е то что нельзя считать с единственной страницы.

0

76

Deff, а это API MyBB что?

Запрос вида:

Код:
http://forum.mybb.ru/api.php?data=user&id=20787

Вернёт это:

{"sex":"0", "age":"0", "name":"", "posts":"19612", "style":"MyBB_Leopard", "status":"Старожил", "avatar":"/img/avatars/0000/14/1c/22787-1320850018.png", "invited":"0", "groupId":"5", "location":"Местечковый", "lastPost":"1331970514", "lastVisit":"1331970914", "totalTime":"18141600", "userLogin":"Deff", "birthDate":"", "groupTitle":"Опытные", "registered":"1278359314", "inviteCode":"8753ic4c99afe", "respectPlus":"3052", "respectMinus":"11", "positivePlus":"711", "positiveMinus":"27"}

Некоторые данные взял от балды  :)

Про ip - особый разговор.
Айпишник тех, кто в онлайне могут получить только члены гр. Администраторы.
Айпишник юзера, в момент отправки сообщения на форуме фиксируется в инфе автора поста, доступен администраторам и модераторам.
А также айпи записывается в логах.

Т.е. если я успешно вошёл на форум, побродил по нему, не написав ничего, а затем вышел, то инфа о ip в database не сохраняется.

Отредактировано RUSSIAN_GOBLIN (Сб, 17 Мар 2012 16:13:07)

0

77

5. Доступ к входящим личным сообщениям

Аргумент -> data
Значение -> pm

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

Доп. аргументы:
Аргумент -> statusPm
Значение -> all или new или old
Если аргумент statusPm в запросе не указан явно или равен all - любые ЛС,
если он равен new - только новые ЛС,
если он равен old - только прочитанные ЛС.

Аргумент -> max
Значение -> число
Ограничивает массив с инфой о ЛС указанным в значении аргумента числом ЛС.

Используемые ключи:
id - идентификационный номер (UserID) автора ЛС
login - логин (UserLogin) автора ЛС
avatar - относительный путь к аватару "/img/avatars/0000/*********.jpg", если не установлен - пустая текст. строка
time - дата отправления ЛС, кол-во сек с начала эпохи UNIX
subject - тема ЛС
post - содержимое "<div class="post-content"></div>" не включая сам этот тег с закрывающим.

Примеры:
Запрос:

Код:
http://forum.mybb.ru/api.php?data=pm&statusPm=new

Ответ:

Код:
[{"id":"8753", "login":"RUSSIAN_GOBLIN", "avatar":"/img/avatars/0000/14/1c/8753-0.jpg", "time":"1331920967", "subject":"Re (2): Разговор с собой", "post":"Нифига себе. Я как шизофреник общаюсь сам с собой о_0 Слушай не пиши мне больше."},
{"id":"20787", "login":"Deff", "avatar":"/img/avatars/0000/*******.jpg", "time":"1331920954", "subject":"Re: :)", "post":"Трали-вали. Это нам не задавали))"}]

Возращает массив с инфой о всех имеющихся новых ЛС

Запрос:

Код:
http://forum.mybb.ru/api.php?data=pm&max=4

Ответ:

Код:
[{"id":"8753", "login":"RUSSIAN_GOBLIN", "avatar":"/img/avatars/0000/14/1c/8753-0.jpg", "time":"1331920967", "subject":"Re (2): Разговор с собой", "post":"Нифига себе. Я как шизофреник общаюсь сам с собой о_0 Слушай не пиши мне больше."},
{"id":"20787", "login":"Deff", "avatar":"/img/avatars/0000/*******.jpg", "time":"1331920954", "subject":"Re: :)", "post":"Трали-вали. Это нам не задавали))"},
{"id":"8753", "login":"RUSSIAN_GOBLIN", "avatar":"/img/avatars/0000/14/1c/8753-0.jpg", "time":"1331920898", "subject":"Re: Разговор с собой", "post":"Совершенно верно, мой дорогой друг."},
{"id":"8753", "login":"RUSSIAN_GOBLIN", "avatar":"/img/avatars/0000/14/1c/8753-0.jpg", "time":"1331920832", "subject":"Разговор с собой", "post":"Неужели на форуме МуВВ можно отправить ЛС самому себе?"}]

Возвращает массив с инфой  о четырёх последних любых (новых и прочитанных) ЛС.

Получение только нужных данных
Это возможно при использовании доп. аргументов со значением 1.

Пример:
Запрос:

Код:
http://forum.mybb.ru/api.php?data=pm&statusPm=new&max=2&login=1&subject=1

Ответ:

Код:
[{"login":"RUSSIAN_GOBLIN", "subject":"Re (2): Разговор с собой"},
{"login":"Deff", "subject":"Re: :)"}]

Возвращает -- массив данных о максимум двух новых ЛС, в инфе о каждом ЛС: логин автора ЛС и тема ЛС.

Три важных примечания:
1. В БД сервиса тексты ЛС хранятся с bbcode, а возвращаются в ответах на запросы тексты сообщений с НТМL-конструкциями, на которые заменяются эти bbcode.
2. Возвращаемый НТМL-код тела ЛС должен быть в виде строки, т.е. без переносов строк, знаков табуляций и лишних пробелов.
3. Необходимо экранировать двойные кавычки в значении ключа post, т.к. JSON обрамляет в них значения в ответах.

Отредактировано RUSSIAN_GOBLIN (Сб, 17 Мар 2012 17:26:58)

+1

78

RUSSIAN_GOBLIN написал(а):

Про ip - особый разговор.
Айпишник тех, кто в онлайне могут получить только члены гр. Администраторы.

RUSSIAN_GOBLIN
ip - в API запросе должно работать и получацо под всеми,
посколь скрипты установлены Администрацией - страхов туть нет никаких - поскольку его можно и сейчас получить и сторонними плагинами, возьми в инете полно индексации ip текущего пользователя(ксать у многих на сайте есть и данный пункт мог бы избавить от сторонних небезопасных фреймов попутно собирающих  статистику

По поводу  Раскраски по Группе юзеров - Проще попросить приделать к адресам ссылок на профиль

http://forum.mybb.ru/profile.php?id=22787&grid=5

Чем мучать Админа воянием API

Отредактировано Deff (Сб, 17 Мар 2012 21:48:27)

0

79

Deff написал(а):

ip - в API запросе должно работать и получацо под всеми,

Безопасность превыше всего.

Deff написал(а):

Проще попросить приделать к адресам ссылок на профиль

Ну попроси :)

0

80

Я несколько раз видел что Admin заходит на форум и читает эту тему. Может он уже работает над API...
Но в процессе описания API неизбежны изменения, исправления. Лучше бы начать работу после окончательного варианета описания.
Иначе придётся после внесения изменений в описание - делать измененния в программном кода api.php.

Кстати, насчёт более менее полноценного API (как предложил Ренат - get&set) что думает Admin?

API будет таким как сейчас описано в текущем варианте - почти все запросы под получение данных,
или стоит создать новое описание API уже с запросами не только на получение инфы, но и с запросами на внесение изменений в БД?

0