Twilio Verify API: «Запрошенный URL не найден»

Я использую curl для выполнения запроса к Twilio Verify API, следуя инструкциям здесь: https://www.twilio.com/verify/api

Используя эти инструкции, я создал два файла php для выполнения запроса curl - один для получения кода подтверждения (get_code.php), а другой - для проверки кода подтверждения (check_code.php). Эти сценарии вызываются с использованием сообщения ajax для отправки параметров, и эти два сценария почти идентичны, за исключением URL-адреса («/ start» против «/ check»).

Я считаю, что указываю правильные URL-адреса, и get_code.php работает, но check_code.php выдает следующую ошибку:

Requested URL was not found. Please check http://docs.authy.com/ to see the valid URLs.

get_code.php

<?php

$USER_PHONE = htmlspecialchars($_POST["phone"]);

$ch = curl_init();
$curlConfig = array(
    CURLOPT_URL            => "https://api.authy.com/protected/json/phones/verification/start",
    CURLOPT_POST           => true,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POSTFIELDS     => array(
        'country_code' => '1',
        'via' => 'sms',
        'phone_number' => $USER_PHONE,
    ),
    CURLOPT_HTTPHEADER => array('X-Authy-API-Key: MY_KEY')
);
curl_setopt_array($ch, $curlConfig);
$result = curl_exec($ch);
curl_close($ch);

echo $result;
?>

check_code.php

<?php

$USER_PHONE = htmlspecialchars($_POST["phone"]);
$VERIFY_CODE = htmlspecialchars($_POST["code"]);    

$ch = curl_init();
$curlConfig = array(
    CURLOPT_URL            => "https://api.authy.com/protected/json/phones/verification/check",
    CURLOPT_POST           => true,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POSTFIELDS     => array(
        'country_code' => '1',
        'phone_number' => $USER_PHONE,
        'verification_code' => $VERIFY_CODE
    ),
    CURLOPT_HTTPHEADER => array('X-Authy-API-Key: MY_KEY')
);
curl_setopt_array($ch, $curlConfig);
$result = curl_exec($ch);
curl_close($ch);

echo $result;
?>

Я выполнил завиток вручную в терминале, используя тот же URL-адрес и параметры, и это сработало.

curl "https://api.authy.com/protected/json/phones/verification/check?phone_number=MY_PHONE&country_code=1&verification_code=MY_CODE" -H "X-Authy-API-Key: MY_KEY"

Я не знаю, что я делаю не так?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
0
820
1

Ответы 1

Хорошо, я понятия не имею, почему это сработало, но у меня это работает, и, возможно, кто-то еще может объяснить, почему. Я построил URL-адрес CURL в виде строки и удалил аргументы CURLOPT_RETURNTRANSFER и CURLOPT_POST.

<?php

$USER_COUNTRY = "1";
$USER_PHONE = htmlspecialchars($_POST["phone"]);
$VERIFY_CODE = htmlspecialchars($_POST["code"]);

$URL = "https://api.authy.com/protected/json/phones/verification/check?country_code=1&phone_number = ".$USER_PHONE."&verification_code = ".$VERIFY_CODE;

$ch = curl_init();
$curlConfig = array(
    CURLOPT_URL            => $URL,
    CURLOPT_HTTPHEADER => array('X-Authy-API-Key: MY_KEY')
);
curl_setopt_array($ch, $curlConfig);
$result = curl_exec($ch);
curl_close($ch);

echo $result;

?>

?

Я рад, что ты разобрался с этим сам, я просто хотел проследить за этим. Проверка кода с помощью Authy Verify API выполняется через GET, а не через POST. Ознакомьтесь с документацией с примером запроса здесь: twilio.com/docs/verify/api/…

philnash 25.05.2018 02:15

Другие вопросы по теме