CallMethodWithoutAuthXML - NativeAPI — различия между версиями
Строка 8: | Строка 8: | ||
* {{Шаблон:ApiParam|host|1|строка| хост на который хотим пойти online.sbis.ru}} | * {{Шаблон:ApiParam|host|1|строка| хост на который хотим пойти online.sbis.ru}} | ||
== Результат == | == Результат == | ||
− | Результат следует ожидать через вызов | + | Результат следует ожидать через вызов метода [[ReadAllXml_-_NativeAPI|ReadAllXml]] |
В результате должно прийти событие Message, у которого в Result лежит идентификатор сессии - '''session_id''' | В результате должно прийти событие Message, у которого в Result лежит идентификатор сессии - '''session_id''' | ||
Версия 15:30, 16 марта 2023
Описание
Вызов методов модуля плагина без авторизации. Предназначен для вызовов из 1c с передачей параметров в виде xml.
Параметры
- query_id ! (строка) - uuid для идентификации вызова метода
- guid_module ! (строка) - uuid модуля полученный через GetModule()
- parameters_module_method ! (строка) - xml с параметрами, сериализованный в строку
- host ! (строка) - хост на который хотим пойти online.sbis.ru
Результат
Результат следует ожидать через вызов метода ReadAllXml В результате должно прийти событие 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
CallMethodWithoutAuthXML( 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' ]