2013-11-15 4 views
1

Это моя первая попытка создания конечной точки webhook, и я сталкиваюсь с некоторыми проблемами. Я отправляю webhook из JotForm в php-файл на моем сервере. Php выполняется отлично, но у меня также есть некоторые скрипты в файле, которые ссылаются на внешний скрипт и запускают функцию.Выполнение Javascript в конечной точке webhook

Конечная цель - отправить данные представления из jotform на наш Marketo CRM с использованием Marketo. Однако сценарии в конечной точке, похоже, не выполняются. Этот же скрипт отлично работает, если я его настрою, поэтому пользователь на самом деле нажимает на страницу с этим скриптом на нем, но он не работает, если я пытаюсь выполнить его через webhook за кулисами. Любая идея, что мне не хватает? Вот код в полном объеме:

<?php 
//Strips all slashes in an array 
function stripslashes_deep($value){ 
    $value = is_array($value) ? 
       array_map('stripslashes_deep', $value) : 
       stripslashes($value); 
    return $value; 
} 
$result = stripslashes_deep($_REQUEST['rawRequest']); 

//Convert json to php variable 
$obj = json_decode($result, true); 

//Initialize input variables 
$theName = $obj['q1_name']; 
$theEmail = $obj['q3_email']; 
?> 
<!----------------Marketo Munchkin API------------------------------> 
<script src="http://munchkin.marketo.net/munchkin.js" type="text/javascript"></script> 
<script> 
    mktoMunchkin("OUR_MARKETO_ID"); 
    mktoMunchkinFunction(
    'associateLead', 
    { 
     Email: <?php echo "decodeURIComponent(\"" . rawurlencode($theEmail) . "\")" ?>, 
     FirstName: <?php echo "decodeURIComponent(\"" . rawurlencode($theName) . "\")" ?> 
    }, 
    '<?php echo hash('sha1', 'our-secret-key' . $theEmail); ?>' 
); 
</script> 
<!----------------------------------------------------------------> 

«OUR_MARKETO_ID» и «наш секретный ключ» в коде содержит наши полномочия.

Есть ли другой способ, которым я должен выполнять JS?

ответ

2

Этот же скрипт отлично работает, если я его настроил, поэтому пользователь на самом деле нажимает на страницу с этим скриптом на нем, но он не работает, если я пытаюсь выполнить его через webhook за кулисами.

Это, как представляется, указывает, что все, что вы звоните в ваш веб-хоккей, вообще не оценивает javascript. JotForm, вероятно, называет ваш webhook простым HTTP-клиентом или даже низкоуровневой командой Curl, а не настоящим браузером, который выполняет javascript.

Я думаю, вам нужно вырезать javascript и использовать PHP. Выполнение всей этой серверной части - единственный способ гарантировать, что она работает независимо от того, какой клиент вызывает ваш веб-хост.

Похоже, Marketo предоставляет SOAP api, который вы можете использовать в PHP. Возможно, метод synchLead это то, что вам нужно:

http://developers.marketo.com/documentation/soap/synclead/

+0

Хм, да, что будет иметь смысл, что вызов JotForm является даже не оценивая его. Мне нужно взглянуть на использование SOAP api вместо манчкина. благодаря – EJK

Смежные вопросы