Скрипт для обмена данными - offline_main.php
в него через POST в параметр xmlfile передается текстовый
файл, содержащий XML-запрос с необходимыми инструкциями.
Файл с XML-запросом может быть передан пока в двух кодировках:
1. UTF-8
2. Windows-1251
Кодировка файла должна быть корректно указана в заголовке
XML-запроса, иначе возможна потеря русских букв.
XML файл запроса содержит
1) какие данные хочется получить
2) какие данные хочется передать на сервере
На выходе отдается опять же XML файл, содержащий
1) те данные, которые хотелось получить
2) результаты добавления тех данных, что были переданы
примерная структура xml-файла:
<?xml version="1.0" encoding="windows-1251"?>
<QUERYS username="toto" password="789456" mainid="1">
<query QID="1" TYPE="17">
<id>4193934</id>
</query>
<query QID="1" TYPE="1">
<message>тестовое сообщение</message>
<headerofpost>тема</headerofpost>
<jpostid>34658</jpostid>
<attachfile>тема</attachfile>
<commentsubscribe>1</commentsubscribe>
</query>
</QUERYS>
Прим.:
- свойства QID и mainid могут быть заданы произвольно.
На выходе они будут выданы такими же, какими были даны
на вход offline_main.php
Нужны, ИмХО, для ориентации в собственных запросах при
разборе полученных результатов.
- желательно сохранять регистр таким, какой он указан в
данном руководстве.
- ноды типа commentsubscribe, parseurl и т.д., если их
значение нулевое, лучше совсем не включать в запрос.
- dpost передается в виде UnixTimestamp, т.е. это количество секунд
с начала эпохи Unix. Считайте и не забывайте о смещении к
Гринвичу ;)
- messagedate передается в формате "dd.mm.yyyy hh:mm:ss"
- максимальный размер сообщений: коммент и в форум - 10 000 симв.
пост в дневник - 50 000 симв.
- XML-ответ скрипта здесь не разбирается. там все ясно.
Возможные значения свойства TYPE
=1 - новый комментарий
=2 - новый пост в форум
=3 - новый пост в дневники
=4 - новое приватное сообщение
=5 - списки друзей
=6 - регистрация
=7 - получить новые комментарии
=8 - получить новые сообщение с форумов
=9 - получение новых сообщений друзей
=10 - получение новых приватных сообщений
=11 - получение новых смайлов
=12 - получение всех комментариев к заданному сообщению
=17 - получение одного комментария
=18 - получение одного поста с форума
=19 - получение одного сообщения друзей
===1
message - текст сообщения
headerofpost - заголовок сообщения
jpostid - ид поста куда отвечать
attachfile - имя переменной где файл (необязательный параметр)
commentsubscribe - 1 если подписаться на ветку комментарии (если 0 или
нет, то нету подписки)
===2
message - текст сообщения
headerofpost - заголовок сообщения
threadid - ид форума куда постим
parseurl - (=1-парсить урлы)
===3
messagedate - дата, от которой будет сохранено сообщение
message - текст сообщения
headerofpost - заголовок сообщения
parseurl - (=1-парсить урлы)
attachfile - имя переменной где файл
nocomment - признак без комментариев
privatepost - признак закрытая запись
commentsubscribe - 1 если подписаться на ветку комментария (если 0 или
нет, то нету подписки)
===4
message - текст сообщения
headerofpost - заголовок сообщения
tousername - имя кому приватное сообщение
parseurl - (=1-парсить урлы)
===5
action - add,del,get
worknick - рабочий ник
===6
много параметров пока нафик :)
===7
dpost - время последней скачивания
maxpost - количество скачиваемых постов
===8
dpost - время последней скачивания
maxpost - количество скачиваемых постов
===9
dpost - время последней скачивания
maxpost - количество скачиваемых постов
===10
maxpost - макс количество скачиваемых постов
===11
lastsmilieid - последний скаченный смайлид
===12
dpost
maxpost
===17, 18, 19
id - ид поста
Список ошибок, возвращаемых скриптом:
=3 - Ошибка авторизации
=2 - Недостаточно параметров
=21 - Разрешение только jpg gif
=22 - Не картинка
=23 - Файл слишком большой
=24 - Ошибка при закачке
=6 - Нет прав для добавления комментария
=53 - Нет непрочитанных приватных сообщений
=61 - Форум закрыт для постов
=62 - Сообщение превышает максимально допустимый объем
=63 - Защита от флуда (только что было добавлено такое же сообщение)
=4 - Ошибка авторизации
=5 - Нет прав для добавления поста в дневник
=31 - Неверное имя (при добавлении приватного, или нового друга)
=51 - Получатель не может получать приватные (отключена возможность в настройках)
=52 - Слишком длинное сообщение
-------------------------------------------------------------
вариант не окончательный. возможны дополнения по мере тестирования
формата обмена.