Захват пользовательских аргументов из веб-перехватчика события SendGrid PHP

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

У меня настроено уведомление о событии, так что после того, как SendGrid обрабатывает электронную почту, она сохраняет ее в моей БД, я просто не могу понять, как получить настраиваемые аргументы, которые я отправляю.

Я отправляю аргумент следующим образом:

$mail->addCustomArg("campaign", "welcome69");

И затем я сталкиваюсь с проблемами, пытаясь получить его (после того, как SendGrid публикует его)

$data = file_get_contents("php://input");
$events = json_decode($data, true);

foreach ($events as $event) {
$sg_event_id = $event['sg_event_id'];
$unique_args = $event['unique_args'];
}

В нижнем фрагменте кода переменная $unique_args работает, во втором — нет. Любая помощь приветствуется.


person user2788110    schedule 03.04.2017    source источник


Ответы (1)


Что Sendgrid POSTs для вашего хука является объектом JSON. Вы можете получить unique_args напрямую, написав что-то вроде

$unique_args = $events['unique_args']; // this is an associative array.

Вы можете пройтись по ассоциативному массиву, используя цикл foreach следующим образом:

foreach($unique_args as $field => $value) {
}
person Oluwafemi Sule    schedule 03.04.2017