Как разобрать webhook из АMOCRM?
Столкнулся с проблемой, не могу вытащить данные с отправленного amocrm webhook'ом.
function doPost(e) {
Logger.log(e); //вывод: {parameter={leads[status][0][name]=8494, leads[status][0][responsible_user_id]=3869749...}}
Logger.log(e.parameter); // работает и я получаю: {leads[status][0][name]=8494,leads[status][0][responsible_user_id]=3869749...}}
Logger.log(e.parameter.leads.status.0.name) // хочу получить: 8494, но не выходит
}
Подскажите, не могу понять, толи нужно преобразовать что приходит от AMOCRM, толи научиться работать с этой конструкцией.
Пробовал делать:
Logger.log(JSON.stringify(e)) // получаю: {"parameter":{"leads[status][0][name]":"8494", "leads[status][0][responsible_user_id]":"3869749"...}}
Logger.log(e.parameter.leads[status][0][name]) // - естественно ошибка.
Ответы (1 шт):
Автор решения: Dmitriy Stolyarov
→ Ссылка
Пока не нашел нормального решения решил следующим образом, преобразовал [] в __ и теперь обращаюсь к ключам в массиве как и хотел.
function doPost(e) {
var tom = JSON.stringify(e.parameter);
var str = tom.indexOf("]");
debug(str);
while (str > 0 ){
if (tom.indexOf("[") > 0){ tom = tom.replace("[","_") }
if (tom.indexOf("][") > 0){ tom = tom.replace("][","_") }
if (tom.indexOf("][") > 0){ tom = tom.replace("][","_") }
if (tom.indexOf("]") > 0){ tom = tom.replace("]","_") }
str = tom.indexOf("[");
}
tom = JSON.parse(tom); // получаю: {leads_status_0_name_=8494, leads_status_0_responsible_user_id_=3869749...}}
debug(tom.leads_status_0_name_); // а здесь получаю: 8494
bot(tom);
}