Twilio можно настроить для использования стандарта REST API. (В Wordpress есть руководство по по настройке REST маршруты и конечные точки.)
Создайте настраиваемую конечную точку Twilio в Wordpress, используя register_rest_route
. Его можно настроить как POST или GET, но он должен соответствовать вашему номеру факса Twilio настройки.
Например, поместите следующее в functions.php
файл вашей темы (вы должны создать дочерний theme, прежде чем сделать это, если вы еще этого не сделали):
function process_twilio_fax_response( $request ) {
$params = $request->get_params();
// $params should have the data Twilio POSTed as JSON to the API.
// For example, $params['account_sid'] should have the account_sid.
}
// This code registers the API endpoint and tells wordpress to call process_twilio_fax_response
// when data is POSTed to /wp-json/twilio/callback
add_action( 'rest_api_init', function () {
register_rest_route( 'twilio', '/callback', array(
// WP_REST_Server:READABLE = GET only
// WP_REST_Server:CREATABLE = POST only
// WP_REST_Server:EDITABLE = POST, PUT, PATCH
// WP_REST_Server:DELETABLE = DELETE only
// WP_REST_Server:ALLMETHODS = GET, POST, PUT, PATCH, DELETE
'methods' => WP_REST_Server:CREATABLE,
'callback' => 'process_twilio_fax_response',
) );
} );
Это создаст конечную точку в / wp-json / twilio / callback (например, https://www.example.com/wp-json/twilio/callback
), которую можно настроить на номер вашего факса Twilio в качестве URL-адреса " Пришел факс " (или" Изменения статуса факса ", или" Сбой основного обработчика ").
Когда Twilio отправляет POST-запрос к конечной точке, функция обратного вызова (в данном случае process_twilio_fax_response
) будет вызываться с объектом запроса, переданным в качестве параметра. Затем вы можете получить данные JSON в виде ассоциативного массива, вызвав метод get_params()
для параметра (в данном случае $request->get_params()
).
Имейте в виду, что в этом примере нет аутентификации, очистки или проверки, которые необходимы для любого общедоступного REST-маршрута.
Если вы отлаживаете localhost
, URL-адрес обратного вызова будет http://localhost/wp-json/twilio/callback
. Twilio не сможет выполнить POST на localhost
, поскольку он доступен только локально, но вы можете настроить веб-туннель через случайный временный URL-адрес в Linux, используя ngrok. В настройках вашего номера факса Twilio измените любую ссылку на домен localhost
с помощью ngrok домен, сохраняя все остальные ресурсы URL, запросы и т. д. такими же. Например.:
https://localhost/SomeWordpressDomainName/wp-json/twilio/callback
становится
https://randomDomainNameFromNGROK.ngrok.io/SomeWordpressDomainName/wp-json/twilio/callback
person
AlliterativeAlice
schedule
30.12.2019