010
Генерация API-токена без интерфейса
011
012
Если через интерфейс не доступна возможность генерации
013 API_TOKEN, то это можно сделать с помощью REST-API вызовов.
014
015
Поиск идентификатора пользователя
016
017
Вначале нужно узнать идентификатор пользователя, для которого
018 необходимо сгенерировать API_TOKEN.
019
020
Вариант, через реестр пользователей:
021
022
023 - Зайдите в реестр пользователей, и найдите того пользователя,
024 для которого нужно получить API_TOKEN.
025
026 - Откройте окно разработчика (F12) в браузере. И перейдите в
027 список запросов. Установите фильтр Fetch/XHR.
028
029 - Откройте карточку данного пользователя.
030
031 - В списке появятся различные запросы на сервер.
032
033 - Найдете запрос create-draft и выделите его
034
035 - Откройте исходящие параметры (Payload)
036
037 - В исходящих параметрах будет JSON и по пути
038 params_Lr1oSgwPR8.boiId - вы увидите идентификатор
039 пользователя.
040
041
042
Создание API_TOKEN по идентификатору
043 пользователя
044
045
Данное действие делать нужно только в том случае, если для
046 данного пользователя ранее не создавался API_TOKEN.
047
048
Также, если вы хотите стереть прежний API_TOKEN и сгенерировать
049 новый (например потому что старому вы уже не доверяете).
050
051
При генерации нового API_TOKEN-а старый перестаёт
052 аутентифицировать, и если у Вас он используется для каких-либо API
053 вызовов, то они все перестанут работать. Будьте внимательным.
054
055
Для создания нового API_TOKEN нужно вызвать сервис:
056
057
058 POST /web/v2/person/generate-api-token
059
060 {
061 "useParamsFromBody": true,
062 "params_Lr1oSgwPR8": {
063 "personId": "bgLQ8psUtTWbSty2"
064 },
065 "body_o1nhHUG480": {}
066 }
067
068
069
070
071
072
В заголовок этого запроса нужно положить параметр с именем
073 Token. Значение его можете взять из вызова create-draft из такого,
074 же параметра. А вместо "bgLQ8psUtTWbSty2" подставьте нужный
075 идентификатор пользователя.
076
077
Данный сервис сгенерирует API_TOKEN для указанного пользователя
078 и вернёт его:
079
080
081 "a27d599b4b2064b6580d0431"
082
083
084
085
086
087
Кавычки надо убрать.
088
089
Получение текущего API_TOKEN по идентификатору
090 пользователя
091
092
Если пользователь уже имеет API_TOKEN, то его можно получить с
093 помощью вызова сервиса:
094
095
096 POST /web/v2/person/load-api-token
097
098 {
099 "useParamsFromBody": true,
100 "params_Lr1oSgwPR8": {
101 "personId": "bgLQ8psUtTWbSty2"
102 },
103 "body_o1nhHUG480": {}
104 }
105
106
107
108
109
110
Данный сервис загрузит API_TOKEN для указанного пользователя и
111 вернёт его:
112
113
114 "a27d599b4b2064b6580d0431"
115
116
117
118
119
120
Кавычки надо убрать.
121
122
Если вернётся пусто, то у данного пользователя нет API_TOKEN -
123 его нужно сгенерировать сервисом описанным выше.
124
125
Удаление API_TOKEN по идентификатору
126 пользователя
127
128
Если API_TOKEN для данного пользователя создан по ошибке, или
129 уже не нужен, то его можно удалить вызвав сервис:
130
131
132 POST /web/v2/person/remove-api-token
133
134 {
135 "useParamsFromBody": true,
136 "params_Lr1oSgwPR8": {
137 "personId": "bgLQ8psUtTWbSty2"
138 },
139 "body_o1nhHUG480": {}
140 }
141
142
143
144
145
146
Код 200 обозначит факт удаления.
147
148
149
at kz.greetgo.md_reader.util.MdUtil.xmlTextToDoc(MdUtil.java:80)
at kz.greetgo.md_reader.core.MdConverter.prepareHtmlFileFrom(MdConverter.java:136)
at kz.greetgo.md_reader.core.MdConverter.convert(MdConverter.java:208)
at kz.greetgo.md_reader.controller.RenderController.downloadToc(RenderController.java:360)
at kz.greetgo.md_reader.controller.RenderController.request(RenderController.java:108)
at jdk.internal.reflect.GeneratedMethodAccessor3.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:207)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:152)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:884)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:797)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1081)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:974)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1011)
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)
at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)
at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
at kz.greetgo.md_reader.interceptors.TextReplaceFilter.doFilter(TextReplaceFilter.java:36)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:166)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:341)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:894)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1741)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)
at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.base/java.lang.Thread.run(Thread.java:833)
Caused by: java.io.IOException: Server returned HTTP response code: 429 for URL: http://www.w3.org/TR/xhtml1/DTD/xhtml-lat1.ent
at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:2000)
at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1589)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLEntityManager.setupCurrentEntity(XMLEntityManager.java:677)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLEntityManager.startEntity(XMLEntityManager.java:1397)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLEntityManager.startEntity(XMLEntityManager.java:1333)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDTDScannerImpl.startPE(XMLDTDScannerImpl.java:732)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDTDScannerImpl.skipSeparator(XMLDTDScannerImpl.java:2101)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDTDScannerImpl.scanDecls(XMLDTDScannerImpl.java:2064)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDTDScannerImpl.scanDTDExternalSubset(XMLDTDScannerImpl.java:299)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$DTDDriver.dispatch(XMLDocumentScannerImpl.java:1165)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$DTDDriver.next(XMLDocumentScannerImpl.java:1040)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(XMLDocumentScannerImpl.java:943)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:605)
at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:542)
at java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:889)
at java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:825)
at java.xml/com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)
at java.xml/com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:247)
at java.xml/com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:342)
at java.xml/javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:122)
at kz.greetgo.md_reader.util.MdUtil.xmlTextToDoc(MdUtil.java:71)
... 48 more