1

error 7

(03/10/2013 00:27:36 отредактировано Mekadva)

Тема: error 7

Разбираюсь с Remote SDK. Пока остановился вот на чем:

1. Логинюсь на сервере:

https://hst-api.wialon.com/wialon/ajax.html?svc=core/login&params={"user":"wialon_test","password":"test"}

Логин проходит успешно, из результирующего JSON'а беру session id ("eid").

2. Пытаюсь получить информацию по Баварскому трактору:

https://hst-api.wialon.com/wialon/ajax.html?svc=core/search_item&params={"id":34868,"flags":1025}&sid=0f8927754c5a7b7d8715a27a8265afeb

(sid подставлен тот, который получен при логине).
Получаю:

{
    "error": 7
}

В чем причина?

2

error 7

Re: error 7

А с чего вы решили что у

Баварского трактора

id=34868?
Воспользуйтесь документацией по remote api запросам http://sdk.wialon.com/wiki/ru/sidebar/r … ref/apiref
а так же есть примеры, включая поиск объектов http://sdk.wialon.com/wiki/ru/sidebar/r … odesamples

Mobile Development
Gurtam
3

error 7

(03/10/2013 13:46:15 отредактировано Mekadva)

Re: error 7

kopa пишет:

А с чего вы решили что у Баварского трактора id=34868?

С того решил, что во всех примерах он фигурирует.

kopa пишет:

Воспользуйтесь документацией по remote api запросам

А с чего вы решили, что я ею не воспользовался? Как бы я смог хоть один запрос сформировать, не заглядывая в доки?

kopa пишет:

а так же есть примеры, включая поиск объектов

Из примеров и взято. Вы сами-то смотрели? Давно?

Обескуражен ответом, если честно. Впрочем, это типичный ответ на любом русском форуме. К буржуям зайдешь, спросишь - тебе ответят, в чем ты ошибся и что упустил из виду. К нашим зайдешь - получишь "RTFM, сука!". По-моему, из моего запроса вполне очевидно, что я как минимум читал документацию.

Кстати, сразу сообщаю - я не только документацию читал, но и форум прошерстил контекстным поиском и пару-тройку моментов таким образом нашел, которые напрямую к данной ситуации не относятся, но пригодятся в дальнейшем.

По поводу ID - у Баварского трактора он взят из примеров и, конечно, я понимаю, он с тех пор мог измениться. Ладно. Но там есть и другие объекты, например, 332454 - его ID честно прописан в выплывающем окошке при наведении мышкой. Его я тоже запрашивал, ответ тоже error 7.

Документация раскрывает отдельные действия, но о взаимосвязи этих действий или правильной их последовательности там написано очень мало. Например, в примере, описывающем логин, сразу объясняется взаимосвязь с логаутом, но таких исключений в документации в целом - очень немного. "Сквозных" примеров, описывающих, например, последовательность действий "от и до" (начиная с логина) некой типовой сессии, там нет вообще. Она вообще довольно конкретна, "атомарна", какой-то обобщающей вводной информации там нет. Рассказывается, как сделать, например, то-то и то-то, а зачем это делать - ни слова. Это как словарь русского языка - правописание и значение конкретных слов он разъяснит, а вот принципы построения фраз и предложений - увы.

Я очень сильно подозреваю, что я упустил какое-то промежуточное действие (вот нашел там запрос "добавление в сессию"), но какое? А если нет, то, все-таки, в чем причина? Кто-нибудь может внятно ответить, блин? Как-нибудь так: "ты лошара, у тебя id взят с потолка, прав на него нет, поэтому тебе выдается error 7. Чтобы тебе, лошара, получить id доступных объектов, нужен такой-то запрос, чтобы получить id доступных групп объектов - такой-то" Можно на слесарном русском, можно на литературном. Главное, чтоб ответ был более осмыслен, нежели "RTFM!"

P.S. Так вы еще и представитель компании-разработчика? И так отвечаете??? Я уже не обескуражен, я просто наповал.

4

error 7

Re: error 7

Mekadva пишет:
kopa пишет:

А с чего вы решили что у Баварского трактора id=34868?

С того решил, что во всех примерах он фигурирует.

А еще в документации фигурирует фраза, о том что данные могут бы не актуальны и подставлять нужно дейтсвующие ID.

Mekadva пишет:

А с чего вы решили, что я ею не воспользовался?

А решили так, потому что ответы на большинство вопросов с форума можно найти в документации. И вы не первый кто задает вопрос с очевидными ответом.

Mekadva пишет:

Но там есть и другие объекты, например, 332454 - его ID честно прописан в выплывающем окошке при наведении мышкой.

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

Mekadva пишет:

Документация раскрывает отдельные действия, но о взаимосвязи этих действий или правильной их последовательности там написано очень мало.

Последовательность может быть произвольной, вы выбираете сами что вам первее запрашивать геозоны или POI. Тем более последовательность зависит от конкретной задачи, мы не можем рассмотреть все возможные варианты и угодить всем. Может быть нам новый виалон вам написать?
Конкретные предложения по улучшению документации вы можете высказать, но в конструктивной форме в данном разделе или в новейших разработках.

Mekadva пишет:

Можно на слесарном русском, можно на литературном. Главное, чтоб ответ был более осмыслен, нежели "RTFM!"

По моему вам как бы так и намекнули, даже на литературном русском что ID вы взяли с потолка.

И просто от себя, матом начали ругаться вы, вы утроили какое публичную истерику, прекратите пожалуйста оскорблять сотрудников за зря. Если вас оскорбили на каком нибудь другом ресурсе, напишите им, поплачьте в конце концов, но не мешайте нам работать!

Development Department
Gurtam
5

error 7

Re: error 7

После логина сделайте этот запрос http://sdk.wialon.com/wiki/ru/sidebar/r … arch_items с типом avl_unit и он выдаст все объекты доступ к которым у Вас есть, в т.ч. их ID для дальнейшего использования.

p.s. рекомендую прочитать вот это, хотя верю что Вы это уже читали: http://sdk.wialon.com/wiki/ru/sidebar/r … les/search

At the dark side of telematics...
6

error 7

(03/10/2013 15:51:18 отредактировано Mekadva)

Re: error 7

shal пишет:

После логина сделайте этот запрос http://sdk.wialon.com/wiki/ru/sidebar/r … arch_items с типом avl_unit и он выдаст все объекты доступ к которым у Вас есть, в т.ч. их ID для дальнейшего использования.

Конструктивный ответ, укладывающийся в две строки. Спасибо!

Добавлено спустя   5 минут  56 секунд:

shal пишет:

рекомендую прочитать вот это, хотя верю что Вы это уже читали

Конечно, читал. Оттуда и взял пример. У вас в доках хорошо и подробно расписаны сами запросы, но их последовательность и взаимосвязь отнюдь не очевидна стороннему человеку, как вы, возможно, полагаете.

7

error 7

Re: error 7

zuve пишет:

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

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

zuve пишет:

Последовательность может быть произвольной, вы выбираете сами что вам первее запрашивать геозоны или POI. Тем более последовательность зависит от конкретной задачи, мы не можем рассмотреть все возможные варианты и угодить всем. Может быть нам новый виалон вам написать?

Да бросьте. Я плохо знаю внутренние взаимосвязи некоторые базовые понятия Wialon, и не вижу в этом ничего постыдного. В документации по Remote SDK эти моменты не раскрыты. Если есть какая-то еще документация, описывающая базовые понятия, взаимосвязь объектов, требования, архитектуру и проч. - я разумеется с ней ознакомлюсь. Просто вы в этой кухне годами варитесь и глаз замылился. А я, условно говоря, вчера пришел.

zuve пишет:

По моему вам как бы так и намекнули, даже на литературном русском что ID вы взяли с потолка.

Ну мы же на техническом форуме, к чему намеки-то? Вы можете, конечно, по-умолчанию исходить из того, что спрашивающий - тупой лентяй, недалекий человек и вообще идиот. Но было бы конструктивней, если бы вы исходили из того, что если человек что-то спрашивает, то ему действительно что-то непонятно и, возможно, достаточно легкого "пинка" в нужном направлении. А то сходу обвинения в том, что доки не читал, хотя уж кому-кому, а сотрудникам компании должно быть видно, что примеры прямо из доков и взяты. И это у меня истерика после этого? Сутки читал доки, смотрел примеры, пробовал так и эдак - не получается. Решил спросить, невинный вопрос, сугубо конкретный и сугубо технический - получаю "иди читай доки". Блин. Злые вы, уеду я от вас. smile)

8

error 7

Re: error 7

Mekadva пишет:

Решил спросить, невинный вопрос, сугубо конкретный и сугубо технический - получаю "иди читай доки".

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

Mekadva пишет:

Если есть какая-то еще документация, описывающая базовые понятия, взаимосвязь объектов, требования, архитектуру и проч. - я разумеется с ней ознакомлюсь.

http://docs.gurtam.com/ - да, видимо до прочтения документации по апи, вам нужно было ознакомиться с этим.

Development Department
Gurtam
9

error 7

(03/10/2013 16:43:59 отредактировано Mekadva)

Re: error 7

zuve пишет:

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

Спасибо. Но эти доки в большей степени для пользователи, нежели для разработчика. Я имел в виду нечто вроде обзорной вводной части к SDK.

Добавлено спустя   4 минуты  37 секунд:

Mekadva пишет:

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

И все-таки, вы подскажете, где эта разница объясняется?

10

error 7

Re: error 7

Здесь написано что уникальный ID на самом деле ID оборудования. Нашли ошибку в документации: у объекта поля id и uid действительно подписаны одинаково, но наличие у объекта и id, и uid одновременно  как бы подразумевает, что это не одно и тоже. И у тех, кто знаком с виалоном не 2 дня вопросов не возникало что за 2 разных id.

Теперь конструктивно, какая именно вводная часть должна быть? Что такое объект, пользователь и так далее...? так это описано в пользовательской документации, дублировать ее нет смысла.

Development Department
Gurtam
11

error 7

Re: error 7

Mekadva, прочитайте вот это с одним уровнем вниз по ссылкам. Станет понятнее как программировать.

http://docs.gurtam.com/ru/hosting/sideb … pravlenija

At the dark side of telematics...
12

error 7

Re: error 7

zuve пишет:

Здесь написано что уникальный ID на самом деле ID оборудования. Нашли ошибку в документации: у объекта поля id и uid действительно подписаны одинаково, но наличие у объекта и id, и uid одновременно  как бы подразумевает, что это не одно и тоже. И у тех, кто знаком с виалоном не 2 дня вопросов не возникало что за 2 разных id.

Прошу прощения, но мне непонятно, как в областях, по определению строго формализованных, могут присутствовать такие понятия, как "как бы подразумевает". Мы же не на телешоу "угадай слово"?

Кстати, заметил, что в ответе сервера на запрос логина присутствует поле "au", которого тоже нет в документации (!). В реальной жизни там сидит имя пользователя, такое же, как и в user->nm. Могу я узнать, всегда ли эти поля одинаковы и можно ли использовать "au" вместо "user"->"nm"? Исходя из логики "как бы подразумевания", это обстоятельство как бы подразумевает, что поля разные. А как на самом деле?

zuve пишет:

Теперь конструктивно, какая именно вводная часть должна быть? Что такое объект, пользователь и так далее...? так это описано в пользовательской документации, дублировать ее нет смысла.

Приведу в пример документацию Parse.com: скажем, если вы работаете с JS, то вам предложат:
а) ознакомиться с возможностями SDK в целом, объяснят, какой объект для чего, приведут примеры, причем "по возрастающей", реализации некоторых задач. Это вот здесь: https://www.parse.com/docs/js_guide

А потом, когда вы получили представление о возможностях SDK в целом, посмотрели примеры, узнали взаимосвязи, вам предложат:
б) детальный справочник по SDK со всеми методами, функциями, параметрами и проч. Это здесь: http://www.parse.com/docs/js/

Мне представляется, что было бы гораздо легче, если бы вы расширили раздел примеров, дополнив его описанием пары-тройки типовых сценариев. Вы там выше написали, что вариантов великое множество - конечно, это так, но всегда можно выбрать пару-тройку типовых. Например, что-то подобное: "любая работа с Wialon начинается с запроса логина. После этого вы можете работать с объектами, группами, ресурсами, бла-бла-бла. Чтобы работать с объектами, вам следует получить список объектов, к которым вы имете доступ. Это делается так... Чтобы работать с ресурсами, вам следует... Чтобы получать события от объектов, обязательно нужно добавить их в сессию - это делается так..." Сейчас какая-то часть этого есть, но не в виде связной картины, а в виде мозаики, которую приходится складывать самостоятельно, стараясь ничего не упустить. Где-то есть отсылки на другие примеры/запросы, а где-то нет. Т.е. все это подразумевается, но не говорится явно.

Добавлено спустя   2 минуты  16 секунд:

shal пишет:

прочитайте вот это с одним уровнем вниз по ссылкам. Станет понятнее как программировать.

Да, спасибо, уже читаю.

13

error 7

Re: error 7

Mekadva пишет:

Приведу в пример документацию Parse.com: скажем, если вы работаете с JS, то вам предложат:

По wialon js SDK тоже есть широкий набор примеров и документация.Так же есть набор приложений apps с открытым исходным кодом. В Remote API описаны только форматы запроса и ответы.
Для более быстрого понимания можете воспользоваться инструментами разработчика браузера.
Открываете вкладку сеть -> включаете отображение только XHR запросов -> переходите на сайт мониторинга/менеджера -> выполняете какое-либо действие -> смотрите какие запросы идут на сервер и какой ответ возвращается. Сайты работают через тот же remote api.

Mobile Development
Gurtam
14

error 7

(04/10/2013 09:30:55 отредактировано zuve)

Re: error 7

kopa пишет:

Кстати, заметил, что в ответе сервера на запрос логина присутствует поле "au", которого тоже нет в документации (!). В реальной жизни там сидит имя пользователя, такое же, как и в user->nm. Могу я узнать, всегда ли эти поля одинаковы и можно ли использовать "au" вместо "user"->"nm"? Исходя из логики "как бы подразумевания", это обстоятельство как бы подразумевает, что поля разные. А как на самом деле?

au возвращает имя пользователя, для которого вы вводите пароль, в user содержится информация о пользователе, от имени которого вы зашли. Если при логине вы не указали параметр operateAs, то в обоих полях у вас будет информация об одном и том же пользователе.

Development Department
Gurtam
15

error 7

(04/10/2013 10:07:28 отредактировано zuve)

Re: error 7

По документации: вы привели в  пример JS документацию, это не совсем одно и то же. Для JS достаточно 5 строк кода и это уже пример, один remote запрос вместе с ответом в лучшем случае займет пол экрана в высоту. Если расписывать всю цепочку запрсов то в конце забываешь с чего все начиналось это не вариант для примера.
В примерах рассмотрены самые непростые для понимания вопросы, а  именно:
1) для совершения какой-либо операции лужно для начала осуществить вход
2) для работы с сообщениями нужно вначале загрузить их в слой либо в загрузчик иначе некоторые запросы попросту не отработают
3) запросы по отчетам тоже могут не отработать если в памяти нет результата отчета
4) так же поиск с его кучей параметров не очевиден в связи с этим рассмотрен подробнее
5) событийная система
Если вы нашли еще какие то не очевидные моменты, поделитесь ими пожалуйста. Т.к. удлинение каждого примера логином в начале и логаутом в конце не добавляет полезности в документации.

p.s. для того чтобы окончательно понять, что не так с документацией, приведите пожалуйста пример сценария, который вы бы хотели у видеть в примерах. Что-то вроде такого:
Задача узнать где был объект в такое то время.
Ответ: Логин->Узнать ID объета по имени (если не знали)->Загрузить сообщения->Найти сообщение полученное в ближайшее время от заданного и посмотреть в нем местоположение->Логаут
Данный пример не рассмотрен в документации потому что мы считаем, что пользователь изучив примеры и найдя в документациии запрос avl_hittest_time сам поймет что для выполнения данного запроса нужно выполнить ряд действий прежде. Например в параметрах у данного запроса есть непонятный layerName, тут пользователь вспоминает что видел в примерах как выгрузить сообщения в слой. А для загрузки сообщений нужно знать id, а поиск тоже есть в  примерах, а чтоб вообще что то поискать нужно залогиницца.
Суть в том что мне с высоты моего понимания действительно сложно определить что непонятно, поэтому если вы приведете хороший наглядный пример (задачу для примера, решение за нами smile ), причем не повтроряющий уже написанное, то мы его включим в документацию.

Development Department
Gurtam
16

error 7

Re: error 7

zuve пишет:

Данный пример не рассмотрен в документации потому что мы считаем, что пользователь изучив примеры и найдя в документациии запрос avl_hittest_time сам поймет что для выполнения данного запроса нужно выполнить ряд действий прежде. Например в параметрах у данного запроса есть непонятный layerName, тут пользователь вспоминает что видел в примерах как выгрузить сообщения в слой. А для загрузки сообщений нужно знать id, а поиск тоже есть в  примерах, а чтоб вообще что то поискать нужно залогиницца.

Судя по всему, тут разница во взглядах. Вы только что описали ситуацию, когда пользователь "собирал мозаику" по кирпичикам и при рассмотрении одного кирпичика вспомнил, что он видел нечто похожее в другом кирпичике. И вы считаете, что так и надо - от частного, от деталей идти к общему. Мне же представляется более правильным ровно обратное направление - от общего к частному. С другой стороны, для понимания архитектуры системы есть подробная пользовательская документация, которую разработчику все-равно нужно прочитать так или иначе, ведь он должен представлять себя на месте пользователя. Расскажу, по какому пути я шел - вот сайт Gurtam, вот меню, вот ссылка "SDK" - и я на месте, считая, что здесь есть все, что мне нужно. Оказалось, не все. Оказалось, что и ссылок на это отсутствующее "не все" тоже нет. Мне кажется, стоит в начале раздела SDK разместить ссылки на остальную документацию, причем с пояснением, что она описывает архитектуру и основные понятия системы и поэтому крайне желательна к прочтению и разработчиками тоже.

zuve пишет:

А для загрузки сообщений нужно знать id, а поиск тоже есть в  примерах, а чтоб вообще что то поискать нужно залогиницца.

Конечно, многие понятия очевидны даже для пенсионеров - все знают, что для начала работы нужно залогиниться. smile А вот дальше уже встречаются неоднозначности. Без представления об архитектуре системы они могут поставить в тупик. Это даже терминологии касается - поизучав документацию, я понял, например, что термин "сообщение" у вас означает разовую "отбивку" трекера. Вот чесслово, я больше нигде не встречал такой трактовки. smile И это, кстати, один из тех случаев, когда чем больше опыт, тем сложнее понять. Мне этот опыт упорно внушал, что "сообщение" - это либо SMSка, либо сообщение между водителем и диспетчером например. А тут вона как оказалось. Это как когда-то очень давно 1Сники "переизобрели" слово "конфигурация", обозвав им, по-сути, программный продукт. Потом-то все привыкли, а поначалу сбивало с толку. smile

zuve пишет:

Суть в том что мне с высоты моего понимания действительно сложно определить что непонятно

Ничего удивительного, ведь, находясь "внутри", довольно сложно посмотреть на вещи "снаружи". В двух словах скажу так, за себя - когда я попал в раздел SDK, я понял, что меня, не умеющего плавать, бросили в воду и сказали "выплывай". Наверное, это обусловлено тем, что я со стороны. Могу предположить, что среди разработчиков "под Wialon" подавляющее большинство составляют люди, так или иначе постоянно работающие с системой. Именно поэтому у них не возникает тех вопросов, которые возникали у меня. Вероятно, для них имеющаяся документация в том виде, в каком она есть - абсолютно достаточна. Но для людей посторонних, типа меня - тут есть вопросы.

Вот, как-то так. smile

Добавлено спустя   1 минуту  17 секунд:

zuve пишет:

au возвращает имя пользователя, для которого вы вводите пароль, в user содержится информация о пользователе, от имени которого вы зашли. Если при логине вы не указали параметр operateAs, то в обоих полях у вас будет информация об одном и том же пользователе.

Понятно. Но... ведь тут было много слов произнесено "читайте доки, там все есть". smile А в доках этого нет. smile

17

error 7

Re: error 7

Cсылки на пользовательскую документацию мы добавим.
Доки обновляются, но не всегда со скоростью доработки новых фич, в будущем постараемся синхронизировать процессы.

Development Department
Gurtam