#codeigniter #webhooks #mailgun #payload
#codeigniter #webhooks #mailgun #полезная нагрузка
Вопрос:
Я пытаюсь получить полезную нагрузку из mailgun webhook в Codeignaiter, но все они пусты.
function index($payload = '')
{
var_dump($_POST); // empty
var_dump($_GET); // empty
var_dump($payload); // empty
}
Я тестирую свой URL-адрес webhook с панели инструментов mailgun, все в порядке, и он работает, но с пустой полезной нагрузкой.
Response: array(0) {
}
array(0) {
}
string(0) ""
Но при тестировании с помощью Postbin он возвращает такие данные
{
"timestamp": "1602575614",
"token": "3d21344bf13e4999bc6233a2031984f5ed4a7d9b5a42df9189",
"signature": "b1269faef2b44ce7f1ceaada83838691ed00203d1eb228e9c7097b7ec725a19c"
}
...
Что может быть причиной пустых данных?
Комментарии:
1. Активна ли ваша защита CSRF? Если вы отправляете сообщение без правильного токена CSRF (которого у внешнего поставщика никогда не будет), вам следует (ОСТОРОЖНО) перейти к
php://input
, что открывает совершенно другую банку с червями, или добавить исключение для защиты CSRF для конкретной пары контроллер / метод, которая должна получать данныеиз веб-крючка mailgun
Ответ №1:
Этот вернет нужные мне данные
$postedData = json_decode(file_get_contents('php://input'), TRUE);
print_r($postedData);