CallMethodWithoutAuth — различия между версиями
(Новая страница: «== Описание == Вызов методов модуля плагина без авторизации. == Параметры == * {{Шаблон:ApiParam|qu…») |
|||
(не показано 6 промежуточных версий этого же участника) | |||
Строка 1: | Строка 1: | ||
== Описание == | == Описание == | ||
− | Вызов методов модуля плагина без авторизации. | + | Вызов методов модуля плагина без авторизации. Предназначен для вызовов из интегрируемых систем, работающих с json-объектами. |
== Параметры == | == Параметры == | ||
Строка 9: | Строка 9: | ||
== Результат == | == Результат == | ||
Результат следует ожидать через вызов функции ReadAllObject() | Результат следует ожидать через вызов функции ReadAllObject() | ||
− | В результате должно прийти событие Message, у которого в Result лежит ''' | + | В результате должно прийти событие Message, у которого в Result лежит идентификатор сессии - '''session_id''' |
== Пример успешного вызова == | == Пример успешного вызова == | ||
− | |||
<syntaxhighlight lang="python"> | <syntaxhighlight lang="python"> | ||
− | CallMethodWithoutAuth( query_id, guid_module, module_method, parameters_module_method, | + | |
+ | query_id = str(uuid.uuid4()) | ||
+ | module_method = "ExtSdk2.AuthByPassword" | ||
+ | parameters_module_method = json.dumps({"Login": "login", "Password": "password"}, ensure_ascii=True) | ||
+ | domain = online.sbis.ru | ||
+ | |||
+ | CallMethodWithoutAuth( query_id, guid_module, module_method, parameters_module_method, domain ) | ||
+ | |||
+ | </syntaxhighlight> | ||
+ | |||
+ | == Пример ответа == | ||
+ | <syntaxhighlight lang="python" line='line'> | ||
+ | |||
+ | answer = read_all_object( query_id ) | ||
+ | |||
+ | session_id = answer[ 'Result' ] | ||
+ | |||
+ | def read_all_object( query_id ): | ||
+ | |||
+ | # Словарь с функциями обработки событий по типу | ||
+ | supported_events = { | ||
+ | 'Message': parse_Message, | ||
+ | 'Error': parse_Error, | ||
+ | 'Event': parse_Event | ||
+ | } | ||
+ | |||
+ | json_string = ole.ReadAllObject() | ||
+ | events = json.loads(json_string) | ||
+ | |||
+ | for event in events: | ||
+ | event_type = event.get('type') | ||
+ | supported_events[event_type](event) | ||
+ | |||
+ | if( event[ 'queryID' ] == query_id ) | ||
+ | return event[ 'data' ] | ||
+ | |||
</syntaxhighlight> | </syntaxhighlight> | ||
[[Категория:OLE ExtSdk2]] | [[Категория:OLE ExtSdk2]] |
Текущая версия на 15:53, 1 июня 2021
Описание
Вызов методов модуля плагина без авторизации. Предназначен для вызовов из интегрируемых систем, работающих с json-объектами.
Параметры
- query_id ! (строка) - uuid для идентификации вызова метода
- guid_module ! (строка) - uuid модуля полученный через GetModule()
- parameters_module_method ! (строка) - json с параметрами, сериализованный в строку
- host ! (строка) - хост на который хотим пойти online.sbis.ru
Результат
Результат следует ожидать через вызов функции ReadAllObject() В результате должно прийти событие Message, у которого в Result лежит идентификатор сессии - session_id
Пример успешного вызова
query_id = str(uuid.uuid4())
module_method = "ExtSdk2.AuthByPassword"
parameters_module_method = json.dumps({"Login": "login", "Password": "password"}, ensure_ascii=True)
domain = online.sbis.ru
CallMethodWithoutAuth( query_id, guid_module, module_method, parameters_module_method, domain )
Пример ответа
answer = read_all_object( query_id )
session_id = answer[ 'Result' ]
def read_all_object( query_id ):
# Словарь с функциями обработки событий по типу
supported_events = {
'Message': parse_Message,
'Error': parse_Error,
'Event': parse_Event
}
json_string = ole.ReadAllObject()
events = json.loads(json_string)
for event in events:
event_type = event.get('type')
supported_events[event_type](event)
if( event[ 'queryID' ] == query_id )
return event[ 'data' ]