Александр Самохин, да, я тоже думал что должен конвертировать в json объект, но похоже не работает. Пока никак, я пытаюсь найти верное решение.
Вот к примеру корректный доступ к элементу массива (event_name) можно получить только через JSON.parse без предварительного конвертирования в строку. Остальные варианты не работают.
var json = JSON.stringify(e.postData.contents);
sheet.getRange("L2768").setValue(json);
sheet.getRange("L2769").setValue(json.event_name);
значение json:
"{\"event_name\":\"chat_finished\",\"chat_id\":28907,\"widget_id\":\"CzK4ffvCYC\",\"visitor\":{\"name\":\"Петя\",\"phone\":\"54454654\",\"number\":806815,\"chats_count\":2},\"chat\":{\"messages\":[{\"timestamp\":1522157709,\"type\":\"visitor\",\"message\":\"zzzzzz\"},{\"timestamp\":1522157755,\"agent_id\":327378,\"type\":\"agent\",\"message\":\"чччч\"},{\"timestamp\":1522157771,\"type\":\"visitor\",\"message\":\"мммм\"}],\"rate\":null},\"agents\":[{\"id\":327378,\"email\":\"alena@rambler.ru\",\"name\":\"Елена\"}],\"session\":{\"geoip\":{\"region_code\":\"48\",\"country_code\":\"RU\",\"country\":\"Russian Federation\",\"region\":\"Moscow City\",\"city\":\"Moscow\",\"isp\":\"\",\"latitude\":\"55.7485\",\"longitude\":\"37.6184\",\"organization\":\"Moscow Local Telephone Network (OAO MGTS)\"},\"utm\":\"campaign=(direct)|source=(direct)\",\"utm_json\":{\"campaign\":\"(direct)\",\"source\":\"(direct)\"},\"ip_addr\":\"109.252.236.186\",\"user_agent\":\"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:59.0) Gecko/20100101 Firefox/59.0\"},\"page\":{\"url\":\"url\",\"title\":\"title\"}}"
значение json.event_name:
undefined
-------------------------------------------------------------------
var jsonstring = JSON.parse(e.postData.contents);
sheet.getRange("L2771").setValue(jsonstring);
sheet.getRange("L2772").setValue(jsonstring.event_name);
значение jsonstring:
{widget_id=CzK4ffvCYC, chat={rate=null, messages=[Ljava.lang.Object;@39a72705}, session={utm_json={campaign=(direct), source=(direct)}, geoip={country_code=RU, country=Russian Federation, city=Moscow, isp=, latitude=55.7485, organization=Moscow Local Telephone Network (OAO MGTS), region=Moscow City, region_code=48, longitude=37.6184}, ip_addr=109.252.236.186, user_agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:59.0) Gecko/20100101 Firefox/59.0, utm=campaign=(direct)|source=(direct)}, event_name=chat_finished, page={title=title, url=url}, visitor={number=806815, phone=54454654, chats_count=2, name=Петя}, chat_id=28907, agents=[Ljava.lang.Object;@13e3b7ea}
значение jsonstring.event_name:
chat_finished
-------------------------------------------------------------------
var content = JSON.parse(JSON.stringify(e.postData.contents));
sheet.getRange("L2774").setValue(content);
sheet.getRange("L2775").setValue(content.event_name);
значение content:
{"event_name":"chat_finished","chat_id":28907,"widget_id":"CzK4ffvCYC","visitor":{"name":"Петя","phone":"54454654","number":806815,"chats_count":2},"chat":{"messages":[{"timestamp":1522157709,"type":"visitor","message":"zzzzzz"},{"timestamp":1522157755,"agent_id":327378,"type":"agent","message":"чччч"},{"timestamp":1522157771,"type":"visitor","message":"мммм"}],"rate":null},"agents":[{"id":327378,"email":"alena.larech@rambler.ru","name":"Елена"}],"session":{"geoip":{"region_code":"48","country_code":"RU","country":"Russian Federation","region":"Moscow City","city":"Moscow","isp":"","latitude":"55.7485","longitude":"37.6184","organization":"Moscow Local Telephone Network (OAO MGTS)"},"utm":"campaign=(direct)|source=(direct)","utm_json":{"campaign":"(direct)","source":"(direct)"},"ip_addr":"109.252.236.186","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:59.0) Gecko/20100101 Firefox/59.0"},"page":{"url":"url","title":"title"}}
значение content.event_name:
undefined
Сергей Соколов, поддержка живосайта сказала что проблема в GAS
Парсю вот так:
function doPost(e) {
var content = JSON.parse(e.postData.contents);
}
и далее для получания значений var event = content.event_name, например.
Нее, вы бы и не смогли подписаться, там же авторизация должна быть.
Смысл такой - группа лиц (например сотрудники компании) проходят авторизацию на сайте, и в дальнейшем получают корпоративные уведомления прямо в браузере.
Спасибо за разъяснение! Попробовал Aspose.Cells, действительно с такой подробной документацией пользоваться им очень просто. Плохо, что в бесплатной версии создаётся лишний лист в файлике, он мне особо не мешает, но хотелось бы его убрать, попробую поискать какой нибудь хак)
Спасибо! из родительской формы в дочернюю значение передает, а вот из дочерней в родительскую не выходит, main=null.
Необработанное исключение типа "System.NullReferenceException" в Selenium-1.exe
Дополнительные сведения: Ссылка на объект не указывает на экземпляр объекта.
Form1 form1;
public partial class Form2 : Form
{
Form1 form1;
public Form2()
{
InitializeComponent();
form1 = this.Owner as Form1;
}
private void button1_Click(object sender, EventArgs e)
{
form1.captchaAnswer = textBox1.Text; //вот здесь ошибка
}
}
Вот к примеру корректный доступ к элементу массива (event_name) можно получить только через JSON.parse без предварительного конвертирования в строку. Остальные варианты не работают.