Проверка уникальности текста через text.ru

Как реализовать интеграцию с Text.ru для проверки уникальности текста

1. Получаем ключ (userkey) на сайте text.ru. Тарифы на пакеты text.ru - https://text.ru/pack

2. Создаем исходящий метод API (json, post). Процедура Request: 

CREATE PROCEDURE [dbo].[api_textru_request]
	@parameters ExtendedDictionaryParameter READONLY,  -- входящие параметры для внутренней обработки (используйте Key, Value2)
	@username nvarchar(32)  -- текущий пользователь.
AS
BEGIN
	declare @userkey nvarchar(128) = '_________________________'
    declare @callback nvarchar(256) = 'https://demo.web-automation.ru/api/action/textru'
    declare @text nvarchar(max) = (select top 1 Value2 from @parameters where [key]='text')

	-- SELECT 1  Msg, Result, Url (адрес, куда будет идти запрос)
	select '' Msg, 1 Result, 'http://api.text.ru/post' Url 

	-- SELECT 2 PARAMETERS - параметры, которые будут передаваться во внешний источник
	select 'text' name, @text value, 'form' [type] 
    union
    select 'userkey' name, @userkey value, 'form' [type] 
    union
    select 'callback' name, @callback value, 'form' [type]    
END

Данный метод API только создает задание на проверку уникальности. В callback указан адрес (наш другой метод API), куда будет отправлен ответ от text.ru

3. Создаем форму с полем text, в процедуре SaveItem вызываем внешнее действие для вызова API. 

https://pastebin.com/1tWKqr16

Примечания: 

  • делаем RefreshContainer чтобы инициализировать другую форму для проверок результата (watch_textru2).  По сути мы здесь загружаем вторую форму в окно результата первой формы
  • сам вызов метода API для создания запроса идет в SELECT 2

4. Создаем JS коллбек, чтобы из результата метода API вставить uid задания в новую форму: 

$(function () {
    as.formcallbacks["watch_textru_saveItem"] = function (data, e) {
        var items = JSON.parse(data.additionalData)[0].items;
        console.log("Getting uid ----------------", items)
        for (var i = 0; i < items.length; i++) {
            var el = items[i];
            if (el.key == "response") {
                var text_uid = JSON.parse(el.value2).text_uid;
                setTimeout(function () {
                    $('.as-form-item[data-code=uid] input').val(text_uid);
                }, 2000);
            }
        }
    }
});

5. Создаем входящий метод API, который вызывается на стороне text.ru для передачи результата. Результат складываем в отдельную таблицу БД с идентификатором по UID

CREATE PROCEDURE [dbo].[api_textru_textru]
@parameters ExtendedDictionaryParameter READONLY,
@username nvarchar(256)
as
begin

declare @uid nvarchar(max) = (select top 1 Value2 from @parameters where [Key] = 'uid')
	declare @text_unique nvarchar(max) = (select top 1 Value2 from @parameters where [Key] = 'text_unique')
	declare @json_result nvarchar(max) = (select top 1 Value2 from @parameters where [Key] = 'json_result')
	declare @spell_check nvarchar(max) = (select top 1 Value2 from @parameters where [Key] = 'spell_check')

    declare @id int = (select top 1 id from textru_responses where uid = @uid)
    if(@id is null) begin
    	insert into textru_responses(uid, text_unique, json_result, spell_check) values(@uid, @text_unique, @json_result, @spell_check)
    end 
    update textru_responses 
    set text_unique = @text_unique, json_result = @json_result, spell_check = @spell_check
    where id = @id
    
	-- SELECT 1 - вывод метаданных о результате операции метода API 
	select '' Msg, 1 Result, 0 errorCode
	
	-- SELECT 2 -  вывод самих данных в API (в случае проблем проверьте что этот запрос приходит непустой)
	select 'ok' text1
    --select * from ord_orders 
end
	

6. Создаем вторую форму с полем uid, которое автоматически будет заполнено в JS коллбеке. SaveItem данной формы: 

https://pastebin.com/jzyg98zu

В процедуре проверяем есть ли данные по данному uid. Если есть - парсим JSON и выдаем результат. 

Насколько полезна эта возможность?

Другие модули

Получение данных юридического лица по БИК

Чистка данных в ФИО через dadata. Подключение к Dadata API. Коррекция ввода данных человека

Как упростить ввод адреса на сайте. Подсказки dadata по адресу

Проверка орфографии текста через API Яндекс Spell

Поиск компании через Dadata Подсказки. Получение информации о компании через API

Dadata. Вывод товаров и услуг (МКТУ)

Как отправить письмо с шаблоном HTML

Рерайт на сайте, подбор синонимов через API. Получение текста по API

Последние обновления

Платформа Falcon Space

Это снижение стоимости владения

за счет меньшего количества людей для поддержки

Это быстрое внесение изменений

по ходу эксплуатации программы

Это современный интерфейс

полная адаптация под мобильные устройства

Сайт использует Cookie. Правила конфиденциальности OK