Giter VIP home page Giter VIP logo

Comments (15)

Krukov avatar Krukov commented on September 17, 2024 1

REDIRECT_URL не влияет на работу библиотеки, но что бы amocrm выдало токен его нужно указывать как в интеграции

from amocrm_api.

Krukov avatar Krukov commented on September 17, 2024

Привет, тяжело конечно сказать что не так в вашем случае. Это только на сохранении происходить? Получить что то из амо удается?

Когда я интегрировал эту либу в джанго проект я делал все эти инициализации с токеном прямо в модуле (файле) где были определены модели 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.

itekhi avatar itekhi commented on September 17, 2024

Большое спасибо за ответ!

Попробовал 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.

itekhi avatar itekhi commented on September 17, 2024

Возможно это что-то с созданной интеграцией в amocrm, я ни разу не авторизировал интеграцию администратором, но вроде в интеграции во вкладке Granted access всё есть... Может есть вариант вручную указать login и password при авторизации?

from amocrm_api.

Krukov avatar Krukov commented on September 17, 2024

ENABLE можно опустить, это просто в качестве примера (у меня это ENABLE = settings.AMO_ENABLE).
Не суть, по идеи если токены создались то и авторизация прошла нормально.
Инициализация токенов должна происходить один раз tokens.default_token_manager()

utm_source = custom_field.TextCustomField("Источник / utm_source") я в качестве примера указал, у вас должны быть другие кастомыне поля или они вообще не нужны

По-видемому и получение данных не работает тоже

  1. Проверьте что в интеграции у вас стоит галочка

Screenshot 2020-12-29 at 9 40 58 AM

  1. создайте фаил 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.

itekhi avatar itekhi commented on September 17, 2024

Все равно amocrm.v2.exceptions.UnAuthorizedException...... 🤦‍♂️🤦‍♂️ Даже уже не знаю что попробовать... В интеграции все стоит. Даже попробовал использовать MemoryTokensStorage(), не помогло. Удалил файлы access_token.txt и refresh_token.txt поставил новый authorization_key, не работает.....

Может в самом амо есть какая-то настройка, не в интеграции?

from amocrm_api.

Krukov avatar Krukov commented on September 17, 2024

Не думаю ) . Ради эксперемента завидите новый аккаунт и создайте там новую интеграцию - попробуйте код, если не работает , то скинте креды и я попробую )

from amocrm_api.

Krukov avatar Krukov commented on September 17, 2024

Привет, как успехи? Закрываю задачу?

from amocrm_api.

itekhi avatar itekhi commented on September 17, 2024

Добрый день! Не закрывайте пока, жду ответ поддержки по пропаже интеграции из профиля, праздники, не отвечают...

from amocrm_api.

itekhi avatar itekhi commented on September 17, 2024

А вот вопрос: REDIRECT_URL используется для чего-то в библиотеке? В смысле на локалке должно работать или надо в production с нормальным доменом? REDIRECT_URL такой же как и при создании интеграции.

from amocrm_api.

Krukov avatar Krukov commented on September 17, 2024

@Shaffle1 есть новости? )

from amocrm_api.

itekhi avatar itekhi commented on September 17, 2024

Неа, теперь не хочет создаваться интеграция в амо, пропадает и всё... Напишу как будут!

from amocrm_api.

Krukov avatar Krukov commented on September 17, 2024

Может таже проблема #41 ?

from amocrm_api.

itekhi avatar itekhi commented on September 17, 2024

Вроде нет, амо оплаченный и давно. + я еще тестил API через браузер и postman, все работает. Но все равно спасибо!))

from amocrm_api.

itekhi avatar itekhi commented on September 17, 2024

Наконец-то! Решилось, не знаю точно в чем была проблема, но я проверил оплату, и создал тестовый субаккаунт amocrm. Попробовал с нуля сделать мини-прогу на python без django. И все заработало!!! Видимо amo забагался и не хотел пускать api нормально работать((

from amocrm_api.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.