• Здравствуйте. Пытаюсь взаимодействовать с Api text.ru — https://text.ru/api-check/manual, https://text.ru/api-check. Но ничего не получается. Они утверждают и указано в инструкции, что результат можно ожидать указав в callback страницу, куда поступит Post с уведомлением о завершении и результатами проверки.

    Очень прошу помощи в решении.

    Вот мой код :

    страница new: Здесь простая форма с отправкой данных на страницу result

    <form action="/result/" method="post">
        <textarea name="text-for-check" placeholder="Введите текст для проверки"></textarea>
        <button type="submit">Отправить</button>
    </form>
    
    
    <?php

    страница result — Здесь мы отправляем запрос и получаем text_uid, который нужен для дальнейшего использования.

    <?php
    ob_start();
    /*
    Template Name: Результаты
    */
    
    if ($_SERVER["REQUEST_METHOD"] == "POST")  {
        if(empty($_POST['text-for-check'])) {
            print_r('no');
        }else {
            print_r('yes');
            $textForCheck = htmlspecialchars($_POST['text-for-check']);
        }
        
    }
    
    $url = 'http://api.text.ru/post';
    $args = array(
        'body' => array(
            'userkey' => '9fba58db6c4bc4d682c072308fdb7aa7',
            'text' => $textForCheck,
            'callback' => 'https://test.pro-develop.ru/result3',
            
        ),
       
        'method' => 'POST'
    );
    $response = wp_remote_request( $url, $args );
    $result = json_decode($response['body'], true);
    $textUid = $result['text_uid'];
    
    
    header('Location: https://test.pro-develop.ru/result2/?text_uid=' . $textUid);
    
    ob_end_flush();

    страница result2 —

    <?php
    /*
    Template Name: Результаты2
    */
    
    var_dump($_GET);
    var_dump($_POST);
    $url = 'http://api.text.ru/post';
    
    $args2 = array(
        'body' => array(
            'userkey' => '9fba58db6c4bc4d682c072308fdb7aa7',
            'uid' => $_GET['text_uid'],
            'jsonvisible' => 'detail',
            'callback' => 'https://test.pro-develop.ru/result3',
    
        ),
    
        'method' => 'POST',
        'blocking'    => true,
    );
    
    
    $response2 = wp_remote_request( $url, $args2 );
    $result2 = json_decode($response2['body'], true);
    
    
    echo '<pre>';
    var_dump(json_decode($result2['result_json']));
    echo '</pre>';
    
    ?>

    страница result3 —

    <?php
    /*
    Template Name: Результаты3
    */
    echo 'ok';
    ?>
    <?php
    var_dump($_POST);
    
    ?>
    • Тема изменена 1 год, 8 месяцев назад пользователем ainur733.
    • Тема изменена 1 год, 8 месяцев назад пользователем ainur733.
    • Тема изменена 1 год, 8 месяцев назад пользователем ainur733.
Просмотр 1 ответа (всего 1)
  • Вот такой ответ прислала служба поддержки —

    В result3 вы пытаетесь вывести данные текущего запроса, где, конечно же, не будет результатов проверки. Ссылка, указанная в callback, должна только принимать входящий запрос и сохранять полученные результаты куда-то — например, в базу данных. Сейчас этого нет, и поэтому они теряются. Как поступать с этими данными после получения — решать вам. После сохранения вы сможете запрашивать результат проверки из базы данных в любом удобном месте, например, по uid.

Просмотр 1 ответа (всего 1)
  • Тема «Получение callback ответа API» закрыта для новых ответов.