Так что я действительно не знаю, в чем здесь проблема, я пробовал много вещей, но не могу найти совпадения с хэшами запросов Twilio.Позвольте мне объяснить.
Я решил реализовать экземпляр RequestValidator Twilio, чтобы запросы поступали от Twilio.Но после выполнения этого урока здесь: https://www.twilio.com/docs/usage/security?code-sample=code-validate-signature-of-request-1&code-language=PHP&code-sdk-version=5.x
Валидатор только возвращает false.Вот код, который я использовал:
$url = 'https://example.com/api/endpoint/to/endpoint/';
$request_params = $_REQUEST;
$twilio_validator = new RequestValidator('myauthtoken');
if (!$twilio_validator->validate($_SERVER['HTTP_X_TWILIO_SIGNATURE'], $url, $request_params)) {
throw new CallException('Not from Twilio');
}
Несмотря на то, что URL является примером, именно так у меня отформатирован фактический URL ... без порта, базовой аутентификации или фрагмента.Только протокол, домен и путь с завершающим знаком "/".Кроме того, URL-адрес является точным VoiceURL, который я установил при настройке этого приложения Twilio (это вызов VoiceURL для одного из моих приложений Twilio).
Мой токен авторизации является токеном аутентификации для всей моей учетной записи
В параметрах запроса я уверен, что что-то напутал.Twilio делает GET-запрос к этой конечной точке, и я также попытался использовать суперглобальный $_GET
, но безрезультатно.Я использую $_REQUEST
здесь из-за этой проблемы: https://github.com/twilio/twilio-php/issues/510 и потому что я думал, что это будет лучшим выбором.Я также пытался использовать file_get_contents('php://input')
для той же самой проблемы (хэши не совпадают, в конечном счете).
Я даже разветвил и открыл PR в PHP SDK, чтобы немного обновить класс, просто чтобы увидетьесли бы я мог больше учиться ... так что я знаю класс и его методы довольно хорошо ... Я просто не вижу своей проблемы.
Что я делаю не так, чтобы сделать это такчто RequestValidator не проверяет, что запросы от Twilio поступают от Twilio?