Команды работы с сообщениями — СпамоБорец: документация

### Navigation

- index
- next |
- previous |
- СпамоБорец: документация »
- API СпамоБорца »

# Команды работы с сообщениями

## Команда sf.message.input

Основная команда API СпамоБорца. Отправить сообщение на обработку и получить результат классификации сообщения.

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

### Авторизация

Требуется, партнерская.

### Параметры

`partner`
  Partner партнерская авторизация

`domain`
  Domain домен, относительно которого проводить анализ (необязательный)

`message`
  Message анализируемое сообщение

`debug`
```boolean`` включить отладочный режим (*необязательный*)`

### Результат

`result`
  `string` результат анализа

`log`
  `string` лог прохождения сообщения через firewall, только если был включен отладочный режим (необязательный)

### Пример

#### XML-RPC

    <?xml version="1.0" encoding="UTF-8"?>
    <methodCall>
      <methodName>sf.message.input</methodName>
      <params>
        <param>
          <value>
            <struct>
              <member>
                <name>partner</name>
                <value>
                  <nil/>
                </value>
              </member>
              <member>
                <name>message</name>
                <value>
                  <struct>
                    <member>
                      <name>text</name>
                      <value>
                        <string>Is this message SPAM?</string>
                      </value>
                    </member>
                  </struct>
                </value>
              </member>
            </struct>
          </value>
        </param>
      </params>
    </methodCall>

    <?xml version="1.0"?>
    <methodResponse>
      <params>
        <param>
          <value>
            <struct>
              <member>
                <name>result</name>
                <value>
                  <string>OK</string>
                </value>
              </member>
            </struct>
          </value>
        </param>
      </params>
    </methodResponse>

#### JSON-RPC

    {"service":null,"method":"sf.message.input","id":11,"params":[{"partner":null,"message":{"text":"someone wants to talk","from":34}}]}

    {"result": {"result": "OK"}, "id": 11}

## Команда sf.message.firewall.rules.get

Получить текст правил firewall.

### Авторизация

Требуется, партнерская.

### Параметры

`partner`
  Partner партнерская авторизация

`domain`
  Domain домен, в котором находится firewall (необязательный)

`firewall`
  `string` имя свойства домена, в котором находится firewall

### Результат

`rules`
  `string` текст текущих правил firewall

### Пример

#### JSON-RPC

    {"service":null,"method":"sf.message.firewall.rules.get","id":11,"params":[{"partner":null,"firewall":"messageAnalyzer"}]}

    {"result": {"rules": "do lengthCheck(minLength=1, maxLength=1000) mark invalid\nif invalid stop as INVALID\nstop as OK"}, "id": 11}

## Команда sf.message.firewall.rules.set

Установить правила firewall.

### Авторизация

Требуется, партнерская.

### Параметры

`partner`
  Partner партнерская авторизация

`domain`
  Domain домен, в котором находится firewall (необязательный)

`firewall`
  `string` имя свойства домена, в котором находится firewall

`rules`
  `string` текст правил firewall

### Результат

Нет.

### Пример

#### JSON-RPC

    {"service":null,"method":"sf.message.firewall.rules.set","id":20,"params":[{"partner":null,"firewall":"messageAnalyzer","rules":"stop as SPAM"}]}

    {"result": {}, "id": 20}

## Команда sf.message.firewall.rules.check

Проверить правила firewall на синтаксическую корректность.

### Авторизация

Требуется, партнерская.

### Параметры

`partner`
  Partner партнерская авторизация

`domain`
  Domain домен, в котором находится firewall (необязательный)

`firewall`
  `string` имя свойства домена, в котором находится firewall

`rules`
  `string` текст правил firewall, которые необходимо проверить

### Результат

Нет.

### Пример

#### JSON-RPC

    {"service":null,"method":"sf.message.firewall.rules.check","id":24,"params":[{"partner":null,"firewall":"messageAnalyzer","rules":"stop SPAM"}]}

    {"id": 24, "error": {"origin": "Fault", "message": "\u041e\u0448\u0438\u0431\u043a\u0430 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441\u0430 \u043f\u0440\u0430\u0432\u0438\u043b firewall: Expected \"as\" (at char 5), (line:1, col:6)", "code": 2008}}

## Команда sf.message.log.fetch

Получить из лога сообщений указанный набор сообщений. При выборке можно ограничить возвращаемые результаты по времени, а также по ID последнего полученного сообщения (чтобы исключить получение дубликатов).

Без указания параметров `first`, `last`, `firstID` результатом выполнения команды будут все сообщения из указанного лога. Для повышения эффективности рекомендуется по возможности задавать ограничения `first` и/или `last`. Параметр `firstID` используется для исключения возможности получения дубликатов, когда команда выполняется периодически, с целью получить новые сообщения из лога.

### Авторизация

Требуется, партнерская.

### Параметры

`partner`
  Partner партнерская авторизация

`domain`
  Domain домен, в котором находится firewall (необязательный)

`log`
  `string` имя свойства домена, в котором находится лог сообщений

`first`
  `integer` минимальное время получаемого сообщения, секунды, UTC (необязательный)

`last`
  `integer` максимальное время получаемого сообщения, секунды, UTC (необязательный)

`firstID`
  `integer` минимальный ID получаемого сообщения (необязательный)

### Результат

`entries`
  `Array(`LogEntry `)` список записей лога сообщений

### Пример

#### JSON-RPC

    {"service":null,"method":"sf.message.log.fetch","id":19,"params":[{"partner":null,"log":"messageLog","first":1228214550}]}

    {"result": {"entries": [{"message": {"text": "Oh, darling, it's cool!", "from": 123}, "when": 1228214578, "id": 1, "tags": []}]}, "id": 19}

### Navigation

- index
- next |
- previous |
- СпамоБорец: документация »
- API СпамоБорца »