Вход | Регистрация
 

Заголовок в HTTP запросе (amoCRM)

Заголовок в HTTP запросе (amoCRM)
Я
   Kirich1983
 
13.03.19 - 19:50
Здравствуйте. Нужно из amoCRM получить все сделки которые изменены позже определенной даты.
На сайте https://www.amocrm.ru/developers/content/api/leads смотрю пример:
/* Вы также можете передать дополнительный HTTP-заголовок IF-MODIFIED-SINCE, в котором указывается дата в формате D, d M Y
H:i:s. При передаче этого заголовка будут возвращены сделки, изменённые позже этой даты. */

curl_setopt($curl,CURLOPT_HTTPHEADER,array('IF-MODIFIED-SINCE: Mon, 01 Aug 2013 07:07:23'));

Делаю в 1с:
Заголовки = Новый Соответствие;                                
ЗначениеЗаголовка = "Fri, 01 Mar 2019 12:00:00";
Заголовки.Вставить("IF-MODIFIED-SINCE", ЗначениеЗаголовка);
HTTPЗапрос = Новый HTTPЗапрос("/private/api/v2/json/leads/list?&USER_LOGIN="+USER_LOGIN+"&USER_HASH="+USER_HASH, Заголовки);

Запрос возвращает все сделки которые есть.

Подскажите.
 
 
   Сияющий в темноте
 
1 - 13.03.19 - 20:44
Я бы поднял на php временный сервак и посмотрел бы,что шлет курл и что шлет 1с.
   Kirich1983
 
2 - 13.03.19 - 20:52
(1) В этом я не селен.
   Сияющий в темноте
 
3 - 13.03.19 - 21:11
тогда в тестовой базе подними http сервис и на нем смотри.
насколько я помню,1с любит перекодировки символов делать,как ей хочется.
   Fram
 
4 - 13.03.19 - 21:22
Формат даты просто пи..ц! Они разработчиков на помойках находят что ли?
   Ёпрст
 
5 - 13.03.19 - 22:24
(0) там в примере время еще UTC:

curl_setopt($curl,CURLOPT_HTTPHEADER,array('IF-MODIFIED-SINCE: Mon, 01 Aug 2017 07:07:23 UTC'));
   Ёпрст
 
6 - 13.03.19 - 22:25
+зы Заголовок должен быть передан в часовом поясе UTC.
   Kirich1983
 
7 - 13.03.19 - 22:28
(6) Если смотреть ниже код пример, то там без UTC. Пробовал и так и сяк
https://ibb.co/X2zz4sz
   Ёпрст
 
8 - 13.03.19 - 22:37
(7) самим курлом работает ?
Если да, то скачай Fiddler и посмотри, чего летит при курле и чего летит из 1с-ины.
   Ёпрст
 
9 - 13.03.19 - 22:38
в плане самого запроса и заголовка
   Fram
 
10 - 14.03.19 - 07:49
(7) попробуй просто ради прикола более классические форматы даты вроде yyyy-mm-dd без времени или со временем.
 
 Рекламное место пустует
   Сергиус
 
11 - 14.03.19 - 08:23
(0)'IF-MODIFIED-SINCE: Mon, 01 Aug 2013 07:07:23'

Спасибо, что не кирилицей прописью задавать надо..)

P.s. Может какое-то XML представление задавать надо?
   MM
 
12 - 14.03.19 - 09:14
   Ёпрст
 
13 - 14.03.19 - 10:56
(12) а че там ? Автор тоже самое и устанавливает в заголовок
   Ёпрст
 
14 - 14.03.19 - 10:58
во, вот видать в чем собака порылась:
If-Modified-Since can only be used with a GET or HEAD.
автор ты потом как свой запрос посылаешь ? как post поди ?
   Ёпрст
 
15 - 14.03.19 - 10:59
хотя не..
надо филлером сымотреть
   Kirich1983
 
16 - 14.03.19 - 11:00
(14) GET Запрос
   Ёпрст
 
17 - 14.03.19 - 11:19
(16) филлером смотрел хоть ?
   Kirich1983
 
18 - 14.03.19 - 11:33
(17) Я не знаю как это делать)
   ДенисЧ
 
19 - 14.03.19 - 11:46
(18) гугле фидлер не пробовал смотреть? Там не сложно...
   Kirich1983
 
20 - 14.03.19 - 12:01
(19) Попробую.
   Kirich1983
 
21 - 14.03.19 - 12:02
(17) филллер в поиске только уколы нашел))
   ДенисЧ
 
22 - 14.03.19 - 12:06
(21) https://www.telerik.com/fiddler
Наслаждайся
   trad
 
23 - 14.03.19 - 12:13
(0) в документации нигде /list нету
   Kirich1983
 
24 - 14.03.19 - 12:34
(23) Так тоже самое
HTTPЗапрос = Новый HTTPЗапрос("/api/v2/leads?&USER_LOGIN="+USER_LOGIN+"&USER_HASH="+USER_HASH, Заголовки);
   Сияющий в темноте
 
25 - 14.03.19 - 13:05
(4) формат даты стандартный для web,просто,люди привыкли,что дата пишется красиво,а тут кака то хрень.

возможно,что 1с не знает такого заголовка и ставит перед ним или решетку или что то еще.

автор бы версию платформы написал,можно было бы глянуть.
(есть подозрение,что 1с не анализируя строку заворачивает ее в utf7)
   Kirich1983
 
26 - 14.03.19 - 13:26
(25) 1С:Предприятие 8.3 (8.3.14.1565)
   Fram
 
27 - 14.03.19 - 17:58
(25) такой формат даты приемлем в качестве вывода информации, но требоват ьтакой формат для ввода это за гранью добра и зла. тем более, что оно не работает, если верит ТС
   Fram
 
28 - 14.03.19 - 18:00
(26) ты (10) попробовал?
   Fram
 
29 - 14.03.19 - 18:07
А вообще, если прочитать инструкцию у метода есть параметры для задачи ТС
filter/date_create/     Выбрать сделки по дате создания (нужно передавать массив с параметрами from, to)
filter/date_modify/     Выбрать сделки по дате изменения (нужно передавать массив с параметрами from, to)

Правда инструкция через одно место написано, как всегда. Что, бл.., значит "массив с параметрами"?!!
   Fram
 
30 - 14.03.19 - 18:10
(29) ни примера, ни описания формата даты.. лучше вообще не писать инструкции, чем вот так вот
   Kirich1983
 
31 - 14.03.19 - 18:17
(29) В этом примере нужно указать дату начала и дату окончания и тогда Сделки у которых дата изменения входит в данный интервал попадут в выборку.
   Fram
 
32 - 14.03.19 - 18:19
(31) и?.. то есть задача "изменены позже определенной даты" не решаема с помощью них по твоему?
   Kirich1983
 
33 - 14.03.19 - 18:22
(32) Думаю решаема, если Дата изменения сделки меняется при любом изменении, а не по какому-либо условию.
 
 
   Fram
 
34 - 14.03.19 - 18:24
(33) ???
   Вафель
 
35 - 14.03.19 - 18:27
формально код на 1с корректный
   Вафель
 
36 - 14.03.19 - 18:27
а если керл запустить то отрабатывает?
   Kirich1983
 
37 - 14.03.19 - 18:28
(34) Попробую с этими параметрами.
   Fram
 
38 - 14.03.19 - 18:29
(37) Только пример у тех поддержки попроси сначала. Хотя, если нравится в гадалку играть, то можно не спрашивать
   Kirich1983
 
39 - 15.03.19 - 10:47
Всем спасибо за помощь, я был не прав и невнимателен! Когда я получал массив данных за два дня, в этом массиве было 500 сущностей. Я предположил, что это возвращаются все Сделки. Сегодня товарищ сказал, что у  этой канторы за два дня может поменять 2000 сделок. Проверил период за несколько часов действительно вернул 77 сущностей. Вот рабочий код:

Заголовки = Новый Соответствие;
Заголовки.Вставить("IF-MODIFIED-SINCE", "Fri, 15 Mar 2019 01:00:00 UTC");
HTTPЗапрос = Новый HTTPЗапрос("/private/api/v2/json/leads/list?&USER_LOGIN="+USER_LOGIN+"&USER_HASH="+USER_HASH, Заголовки);
   Fram
 
40 - 16.03.19 - 00:10
(29) То есть отправив запрос из (0) ты ожидал получить всего несколько записей. А когда получил очень много, не разбираясь в датах  возвращённых записей, ты решил что фильтр по дате не сработал?.. бедный заказчик! Ещё и нам мозг вынес
   Сергиус
 
41 - 16.03.19 - 00:51
(40)Бывает)


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует