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

Команда 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}