Comments (15)
REDIRECT_URL не влияет на работу библиотеки, но что бы amocrm выдало токен его нужно указывать как в интеграции
from amocrm_api.
Привет, тяжело конечно сказать что не так в вашем случае. Это только на сохранении происходить? Получить что то из амо удается?
Когда я интегрировал эту либу в джанго проект я делал все эти инициализации с токеном прямо в модуле (файле) где были определены модели Lead с кастомными полями.
# django_project/django_app/amo_integration.py
from amocrm.v2 import Lead as _Lead
tokens.default_token_manager(
client_secret=settings.AMOCRM_CLIENT_SECRET,
client_id=settings.AMOCRM_CLIENT_ID,
subdomain="xxx",
redirect_url="xxx",
storage=tokens.FileTokensStorage(directory_path=str(Path.home())),
)
if ENABLE and settings.AMOCRM_CODE:
tokens.default_token_manager.init(settings.AMOCRM_CODE, skip_error=True)
...
class Lead(_Lead):
utm_source = custom_field.TextCustomField("Источник / utm_source")
utm_medium = custom_field.TextCustomField("Канал / utm_medium")
....
# django_project/django_app/views.py
from .amo_integration import Lead
def view(request):
...
Lead(....).save()
И советую попробовать зафиксировтаь путь для сохранения токенов аля storage=tokens.FileTokensStorage(directory_path=str(Path.home())),
Насчет воронки и отвественного - по идеи вот так должно работать
Lead(name="Форма", responsible_user=6591718, pipeline=36854932).save()
group_id - по доке вроде не передается при созданиии по этому в библиотеке это только редактируемое поле.
from amocrm_api.
Большое спасибо за ответ!
Попробовал Pipeline.objects.all()
и Lead.objects.all()
- возвращает <generator object Manager.filter at 0x0000019224AAEDE0>
(без ошибки! но по-моему это просто сущность, запрос не отправляется...)
А в if ENABLE and settings.AMOCRM_CODE:
откуда берется ENABLE
? Я так понял как только в самый первый раз выполнили init()
дальше уже не надо.
Я поместил всё в models.py
токен создается и все вроде работает нормально:
from django.conf import settings
from amocrm.v2 import tokens
from amocrm.v2 import Lead as _Lead
from amocrm.v2 import custom_field
tokens.default_token_manager(
client_secret=settings.AMOCRM_SECRET,
client_id=settings.AMOCRM_CLIENT_ID,
subdomain=settings.AMOCRM_SUBDOMAIN,
redirect_url=settings.AMOCRM_REDIRECT_URL,
storage=tokens.FileTokensStorage(directory_path=settings.BASE_DIR),
)
print('hello! hello! hello! hello! hello! hello! hello! hello! hello! ')
if False and settings.AMOCRM_CODE:
tokens.default_token_manager.init(settings.AMOCRM_CODE, skip_error=False)
class Lead(_Lead):
utm_source = custom_field.TextCustomField("Источник / utm_source")
utm_medium = custom_field.TextCustomField("Канал / utm_medium")
Потом в views.py
:
from amocrm_api.models import Lead
from amocrm.v2.entity.pipeline import Pipeline
def index(request):
lead = Lead.objects.get(1)
print(lead)
Отправляю форму, print(lead)
выдает None {'with': 'contacts,loss_reason,tags'}
А потом сразу за этим amocrm.v2.exceptions.UnAuthorizedException
(неверный логин или пароль)
Не могу понять, функция tokens.default_token_manager()
должна выполняться при каждом запросе или только в запуск? Потому что print('hello! hello!... ')
выполняется только при перезапуске сервера... Возможно проблема как раз в этом, только не могу понять как сделать чтобы выполнялось каждый раз при запросе.
Update:
Поместил from amocrm_api.models import Lead
внутри def index(request)
и теперь print('hello! hello!... ')
показывается при каждом запросе, но все равно выдает error UnAuthorizedException
.....
from amocrm_api.
Возможно это что-то с созданной интеграцией в amocrm, я ни разу не авторизировал интеграцию администратором, но вроде в интеграции во вкладке Granted access всё есть... Может есть вариант вручную указать login и password при авторизации?
from amocrm_api.
ENABLE можно опустить, это просто в качестве примера (у меня это ENABLE = settings.AMO_ENABLE
).
Не суть, по идеи если токены создались то и авторизация прошла нормально.
Инициализация токенов должна происходить один раз tokens.default_token_manager()
utm_source = custom_field.TextCustomField("Источник / utm_source") я в качестве примера указал, у вас должны быть другие кастомыне поля или они вообще не нужны
По-видемому и получение данных не работает тоже
- Проверьте что в интеграции у вас стоит галочка
- создайте фаил any_name.py
from amocrm.v2 import tokens
from amocrm.v2 import Lead, Pipeline
tokens.default_token_manager(
client_secret="xxx",
client_id="xxx",
subdomain="xxx",
redirect_url="xxx",
storage=tokens.FileTokensStorage(),
)
tokens.default_token_manager.init("xxx", skip_error=True)
if __name__ == "__main__":
print(list(Pipeline.objects.all()))
print(list(Lead.objects.all()))
и запустите python any_name.py
from amocrm_api.
Все равно amocrm.v2.exceptions.UnAuthorizedException
...... 🤦♂️🤦♂️ Даже уже не знаю что попробовать... В интеграции все стоит. Даже попробовал использовать MemoryTokensStorage()
, не помогло. Удалил файлы access_token.txt
и refresh_token.txt
поставил новый authorization_key
, не работает.....
Может в самом амо есть какая-то настройка, не в интеграции?
from amocrm_api.
Не думаю ) . Ради эксперемента завидите новый аккаунт и создайте там новую интеграцию - попробуйте код, если не работает , то скинте креды и я попробую )
from amocrm_api.
Привет, как успехи? Закрываю задачу?
from amocrm_api.
Добрый день! Не закрывайте пока, жду ответ поддержки по пропаже интеграции из профиля, праздники, не отвечают...
from amocrm_api.
А вот вопрос: REDIRECT_URL
используется для чего-то в библиотеке? В смысле на локалке должно работать или надо в production с нормальным доменом? REDIRECT_URL
такой же как и при создании интеграции.
from amocrm_api.
@Shaffle1 есть новости? )
from amocrm_api.
Неа, теперь не хочет создаваться интеграция в амо, пропадает и всё... Напишу как будут!
from amocrm_api.
Может таже проблема #41 ?
from amocrm_api.
Вроде нет, амо оплаченный и давно. + я еще тестил API через браузер и postman, все работает. Но все равно спасибо!))
from amocrm_api.
Наконец-то! Решилось, не знаю точно в чем была проблема, но я проверил оплату, и создал тестовый субаккаунт amocrm. Попробовал с нуля сделать мини-прогу на python без django. И все заработало!!! Видимо amo забагался и не хотел пускать api нормально работать((
from amocrm_api.
Related Issues (20)
- amocrm.v2.exceptions.AmoApiException: Connection aborted. HOT 5
- Истекает срок годности токена
- Прошу связаться со мной.
- Требуется помощь в создании сделки HOT 1
- Перестал сохранять отредактированные сделки и контакты HOT 2
- Статус сделки
- Как сохранять лиды с контактами? HOT 1
- Получения списка всех "custom_fields" для Contact HOT 1
- Ошибка 'This field was not expected.' при попытке сохранить значение кастомного поля сделки на завершенных этапах HOT 1
- Возможно ли с помощью этого апи загрузить данные из сообщений?(раздел почта)
- Баг с полем file
- Не работает lead.notes.objects.create(text="Примечание") и lead.notes(text="Примечание").save() HOT 2
- Не работает Lead.objects.filter(pipeline = 4593160) HOT 1
- долгосрочные токены HOT 1
- Ошибка с методом Entity.onjects.get()
- Проблемы с методом Entity.objects.get() в случае если ничего не найдется
- Как грамотно получить примечания сделок?
- Как работает метод filter() HOT 1
- Как работать с событиями Events?
- Нужна помощь в рефакторе авторизации HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from amocrm_api.