GithubHelp home page GithubHelp logo

alexandrezaytsev / amocrm-dadata-extintegration-widget Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 375 KB

'Первый шаг'. Добавить Lead в воронку. Внешняя интеграция (+widget*3) для amoCRM (весна 2022) + dadata подсказки.

License: MIT License

PHP 2.28% Hack 1.15% JavaScript 28.31% CSS 68.26%
amocrm-php dadata uikit3 widget amocrm-widget ajax-form post amocrm amocrm-api

amocrm-dadata-extintegration-widget's Introduction

ext-integration-amoCRM-with-DaData

'Первый шаг' Добавить Lead(запрос/задачу) в воронку. Внешняя интеграция (+widger) для amoCRM (весна 2022) + dadata подсказки.
all


Настройка окружения

  • определитесь с хостом и загрузите туда проект (для amo нужен сертификат SSL на хосте https:\)
  • выберете имя поддомена и поключитесь к демо версии amoCRM (https://www.amocrm.ru/) (14 дней, потом через чат с техподдержкой в конце периода - продлите период еще на 10 дней)
  • зарегистрируйтесь на сервисе DaData (https://dadata.ru/) и получите бесплатный ключ api

Настройка amoCRM (для текущего релиза Весна 2022)

  1. добавьте несколько пользовательских полей в сущность Списки/Компании/Добавить компанию/Настройка' в примере это строковые поля: - ИНН - ОГРН - Юридический адрес
  2. добавьте воронку Сделки/Новая сделка
  3. создайте внешнюю интеграцию amoМаркет/Создать интеграцию/Внешняя интеграция/Создать
    • 3.1. укажите путь к исполняемому файлу index.php (странице) проекта - здесь https:// каталог на хосте /app/amoCRM/widgets/addLead/
    • 3.2. нажмите подключить, дождитесь изменения статуса на Подключено (с этого момента идет отсчет 20 минут жизни кода авторизации)
  4. добавьте значения в следующие файлы проекта
    • 4.1. \app\amoCRM\amo\config.php
      • $subdomain - имя поддомена из адреса вашего облака amoCRM
      • $client_secret - секретный ключ (из настроек вашей интеграции)
      • $client_id - id интеграции (из настроек вашей интеграции)
      • $code - код авторизации (из настроек вашей интеграции)
      • $redirect_uri путь к файлу проекта из п.п. 3.1
    • 4.2. \app\amoCRM\dadata\config.php
      • var token - ключ API (из сервиса DaData)
    • 4.2. \app\amoCRM\widgets\addLead\script.js
      • var token - ключ API (из сервиса DaData)
    • 4.3. \app\amoCRM\amo\setParty.php
      • $user_amo - ваш id пользователя amoCRM (профиль/Настройки профиля/ID пользователя)
      • $pipeline_id - id воронки (встаньте на созданную воронку (сделки) - последние цифры в адресной строке)
      • проставьте id пользовательских полей из п.п. 1

*значения можете взять из п.п. 5.2 \app\amoCRM\widgets\getInfo
*если $user_amo не указан ('') сделка будет создана от системного 'робот'

  1. авторизация (один раз, и через три месяца если не использовали свою интеграцию ни разу - повторно)
    • 5.1. запустите (index.php) \app\amoCRM\amo\auth.php
      • произойдет замена кода авторизации на токены которые будут сохранены в файле \app\amoCRM\amo\tokens.txt
      • посмотрите в настройках вашей интеграции (Выданные доступы) что текущему пользователю выдано разрешение на ее использование
    • 5.2. для проверки работоспособности выполните запрос к данным amoCRM
      • запустите (amoCRM должен быть открыт в браузере (кеш)) \app\amoCRM\amo\get.phpp (файл покажет структуру пару GET запросов вашей учетки)
      • или (amoCRM может быть закрыт) \app\amoCRM\widgets\getInfo\ (выберите запрос и посмотрите текущую структуру данных)

*если не уложились в 20 минут - отключите свою интеграцию, затем включите ее вновь, дождитесь изменения статуса и внесите новый код авторизации в $code п.п. 4.1.
если файл (index.php) \app\amoCRM\amo\tokens.txt уже содержит токены - очистите его перед авторизацией

  1. виджет (просто страница проекта)
    • 6.1. запустите (index.php) \app\amoCRM\widgets\addLead\
    • 6.2. выберите чрез что запрашиваем данные из DaData
      • через плагин (фронт, JS Плагин DaData, автолоадер + форматировынный выпадающий список и т.д.)(ключ DaData в прямой видимости)
      • через API (бэк, ключ на сервере, запрос через API, тут автолоадер не стал делать - просто первое значение из ответа)(ключ типа спрятан на сервере и вроде не виден на первый взгляд)
    • 6.3. кнопка добавить в amoCRM - создает новый Lead/Сделку с заполненными полями из формы для сущностей Сделка/Компания/Контакт

*можно добавить на форму выпадающий список воронок (значения можете взять из п.п. 5.2 (\app\amoCRM\widgets\getInfo)


Структура проекта

  • \app\amoCRM\amo - здесь бэк авторизации в amoCRM и пара страниц запросов
  • \app\amoCRM\dadata - здесь бэк для работы с DaData через сервер и свежие библиотеки js и css для JS плагина DaData
  • \app\amoCRM\widgets\addLead - здесь страница виджета добавить сделку
  • \app\amoCRM\widgets\getInfo - здесь страница не виджета (не стал делать отдельно, в рамках той-же интеграции) посмотреть структуру данных через API
  • \app\framework\ - здесь фреймворк Uikit.3 для формы виджета(ов)

*в интеграции используется OAUTH 2.0 (ограниченный набор функций) нет возможностей как в JS-виджет (приватная интеграция, где вы отписываетесь от техподдержки amoCRM) привязываться к интерфейсам сущностей (свои выпадающие списки и т.д.) проект просто собран из разных примеров код не оптимизировал (время мало - демка кончается)


Список литературы


Картинки
part1 part2


добавлено:

  • \app\amoCRM\widgets\addLeadToPipeline - здесь страница виджета добавить сделку в существующую воронку пользователем по умолчанию
    444

итого:

  • одна внешняя интеграция
  • три веб морды виджета (addLead (здесь по умолчанию), addLeadToPipeline, getInfo) на выбор
  • один раз авторизуемся auth.php, далее работаем через любую форму в браузере или добавляем виджет на рабочий стол amoCRM и работаем оттуда

ps
продолжения не будет!!!, нас переориентировали на Битрикс 24 (тоже самое вид сбоку)

amocrm-dadata-extintegration-widget's People

Contributors

alexandrezaytsev avatar

Watchers

 avatar

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.