Krukov / amocrm_api

Python amocrm API wrapper
MIT License
104 stars 55 forks source link

Авторизация #82

Closed JasurIsroilov closed 2 years ago

JasurIsroilov commented 2 years ago

При попытке связаться с тестовым аккаунтом - все успешно. При попытке связаться с рабочим аккаунтом всплывает ошибка: raise exceptions.UnAuthorizedException() amocrm.v2.exceptions.UnAuthorizedException Благодарю! Вввожу все, redirect_url и tokens.default_token_manager.init

Krukov commented 2 years ago

Привет А можешь код показать как ты с tokens.default_token_manager работаешь?

JasurIsroilov commented 2 years ago

tokens.default_token_manager( client_id=client_id, client_secret=client_secret, subdomain=subdomain, redirect_url=redirect_url, storage=tokens.FileTokensStorage(directory_path=str(Path.home())), )

tokens.default_token_manager.init('КОД АВТОРИЗАЦИИ')

JasurIsroilov commented 2 years ago

Я не нашел, а в библиотеке предусмотрена обработка ошибок 429 и 403? 429 - Превышено допустимое количество запросов в секунду 403 - Аккаунт заблокирован, за неоднократное превышение количества запросов в секунд 429 это как предупреждение перед 403

Krukov commented 2 years ago

предусмотрена https://github.com/Krukov/amocrm_api/blob/master/amocrm/v2/interaction.py#L43-L50 но не для 429

А полный трейсбек скинь плиз

JasurIsroilov commented 2 years ago

Updates were skipped successfully. Task exception was never retrieved future: <Task finished name='Task-149' coro=<Dispatcher._process_polling_updates() done, defined at D:\python_codes\my_bot\venv\lib\site-packages\aiogram\dispatcher\dispatcher.py:407> exception=UnAuthorizedException()> Traceback (most recent call last): File "D:\python_codes\my_bot\venv\lib\site-packages\aiogram\dispatcher\dispatcher.py", line 415, in _process_polling_updates for responses in itertools.chain.from_iterable(await self.process_updates(updates, fast)): File "D:\python_codes\my_bot\venv\lib\site-packages\aiogram\dispatcher\dispatcher.py", line 235, in process_updates return await asyncio.gather(tasks) File "D:\python_codes\my_bot\venv\lib\site-packages\aiogram\dispatcher\handler.py", line 116, in notify response = await handler_obj.handler(args, *partial_data) File "D:\python_codes\my_bot\venv\lib\site-packages\aiogram\dispatcher\dispatcher.py", line 256, in process_update return await self.message_handlers.notify(update.message) File "D:\python_codes\my_bot\venv\lib\site-packages\aiogram\dispatcher\handler.py", line 116, in notify response = await handler_obj.handler(args, **partial_data) File "D:\python_codes\my_bot\handlers\broker_handler.py", line 64, in write_letter await lead_dsgn(user[0]['amo_con_id']) File "D:\python_codes\my_bot\amo\domeo_lead.py", line 29, in lead_dsgn lead.status = domeo_сonf.STATUS_DSGN File "D:\python_codes\my_bot\venv\lib\site-packages\amocrm\v2\fields.py", line 41, in set value = self.on_set_instance(instance, value) File "D:\python_codes\my_bot\venv\lib\site-packages\amocrm\v2\entity\lead.py", line 22, in on_set_instance return Status.get_for(instance.pipeline).get(query=value).id File "D:\python_codes\my_bot\venv\lib\site-packages\amocrm\v2\fields.py", line 36, in get return self.on_get_instance(instance, data) File "D:\python_codes\my_bot\venv\lib\site-packages\amocrm\v2\fields.py", line 57, in on_get_instance return self.on_get(data) File "D:\python_codes\my_bot\venv\lib\site-packages\amocrm\v2\fields.py", line 121, in on_get return self._manager.get(object_id=data) File "D:\python_codes\my_bot\venv\lib\site-packages\amocrm\v2\manager.py", line 23, in get return self._model(data=self._interaction.get(object_id, include=self._model._get_embedded_fields())) File "D:\python_codes\my_bot\venv\lib\site-packages\amocrm\v2\interaction.py", line 117, in get response, status = self.request("get", path, include=include) File "D:\python_codes\my_bot\venv\lib\site-packages\amocrm\v2\interaction.py", line 57, in request return self._request(method, path, data=data, params=params, headers=headers) File "D:\python_codes\my_bot\venv\lib\site-packages\amocrm\v2\interaction.py", line 46, in _request raise exceptions.UnAuthorizedException() amocrm.v2.exceptions.UnAuthorizedException Goodbye!

Process finished with exit code 0

JasurIsroilov commented 2 years ago

Тут используется библиотека aiogram для создания телеграмм бота. Эти строки той самой библиотеки: Updates were skipped successfully. Goodbye!

JasurIsroilov commented 2 years ago

Прошу прощения. Все нормально. Оказывается сервер аккаунта перегружен. Библиотека работает на ура. По идее 403 ошибку сам же могу обработать? Нет подводных камней? Например: if response.status_code < 300 or response.status_code == 400: return response.json(), response.status_code if response.status_code == 401: raise exceptions.UnAuthorizedException() if response.status_code == 403: raise exceptions.PermissionsDenyException() if response.status_code == 402: raise ValueError("Тариф не позволяет включать покупателей") if response.status_code == 403: sleep("1 sec")

Krukov commented 2 years ago

ну ты можешь сам обработать exceptions.AmoApiException но нужно будет еще текст эксепшена проверять что бы убедится что это 403