Загрузка виджета

8. Упаковка и загрузка архива

Необходимо архиватором упаковать только папку widget архиватором в zip-архив, который должен обязательно называться widget.zip.

Заходим в amoCRM в раздел разработчиков, где получали код виджета и загружаем наш архив.

В случае успешной загрузки вам выдастся соответствующее сообщение. В строке с кодом виджета также присутствует номер версии виджета и количество включенных виджетов.

Первоначальный статус виджета - private. Это означает, что виджет виден пользователям только вашего аккаунта.

Виджет может принимать 4 статуса :

  • private — в этом статусе виджет виден только для создателя. Основной статус при разработке виджета
  • moderate — в этот статус виджет ставится только в том случае, если виджет необходимо опубликовать для всех пользователей amoCRM
  • prepublic — статус при котором работают endpoint’ы виджетов. В этот статус виджеты попадают для итогового тестирования перед публикацией. долгое время виджет находиться в этом статусе не может. (статус выставляется нашими сотрудниками)
  • public — виджет с этим статусом доступен на все аккаунтах amoCRM для установки и использования. В этот статус виджет попадает после успешной модерации. (статус выставляется нашими сотрудниками). Для того, чтобы выкатить обновление уже опубликованного виджета нужно загрузить архив с другим кодом, а в момент модерации указать, что нужно заменить уже опубликованный виджет

Сразу после загрузки виджета вы сможете увидеть его на странице списка виджетов своего аккаунта, также как увидят его другие, если вы опубликуете виджет.

9. Проверка виджета

Для проверки вы можете использовать простой php-скрипт.

  1. <?php
  2.  
  3. if ($_POST['password']=='test')
  4. {
  5.   $response['value']='data saved';
  6.   $response=json_encode($response);
  7.   echo $response;
  8. }
  9. else
  10. {
  11.   header("HTTP/1.0 401 Unauthorized");
  12. }
  13. ?>

10. Модерация виджета


Важно!
Виджет должен соответствовать нашим стандартам
    • Общие:
      • Простота в использовании. Технически не подготовленный пользователь должен понимать, как включить виджет, как его настроить, как с ним работать и где получить поддержку. Чем работа с виджетом понятнее, тем больше пользователей его будет использовать.
      • Качество изготовления. Не должно быть известных разработчикам ошибок. При возникновении внештатных ситуаций виджет должен выдавать сообщения пользователю о сбое и контактными данными для обращение.
      • Безопасность.
      • Кодировка — все файлы должны быть в кодировке UTF-8 без BOM.
      • Нет комментариев – код должен быть чистым.
      • Код не должен быть минимзирован или обфусцирован.
      • Нет дебагов в коде.
      • Нет тестовых данных в коде.
      • Папка для размещения файлов изображений, которые используются в виджете, должна содержать в себе 3 файла (форматов png, jpeg, jpg или gif), которые будут использоваться как логотип виджета в разных областях видимости. Размер каждого файла не должен превышать 300 КБ).
        • logo.png используется на странице настроек виджетов,  Размер: logo.png130px x 100px,
        • logo_min.png и logo_medium.png — во всех списках и карточках контактов или сделок в свернутом и развернутом состоянии соответственно. Размер: logo_medium.png120px x 42px, logo_min.png42px x 42px. Подробно тут (https://developers.amocrm.ru/widgets/structure.php)
    • В frontend-часть:
      • Виджет не должен изменять страницы, которые не включены в разрешенный список, в том числе страницу биллинга
      • Виджет не должен подтягивать шаблоны из внешних ресурсов, все шаблоны должны быть в архиве
      • Отсутствуют alert() и console (log, debug, error и т.п.).
      • Отсутствовали ajax-запросы в циклах.
      • Отсутствуют непроверенные обращения к элементам основного приложения (Например: var i = AMOCRM.setting.new.another).
      • Если виджет использует вебсокеты, то необходимо, чтобы при возникновении событий не отправлялись множественные запросы к API, если у пользователя виджета открыты несколько вкладок.
      • В виджете не должно быть подключения внешних файлов-зависимостей через document.createElement('script') и вставку этого элемента напрямую в head (все внешние зависимости должны подключаться через requirejs в блоке зависимостей в define).
      • Виджет не должен влиять на данные в глобальной переменной AMOCRM, он может только читать данные оттуда.
      • Проверяем стили виджета. Необходимо, чтобы виджет не ломал системные стили и все селекторы строились относительно блока виджета пусть виджеты используют статику с cdnjs.com. Не должно быть глобальных селекторов.
      • Если виджет использует данные пользователя (API ключ, email) должно быть уведомление о том, что данные будут отправлены на сервер модерируемого виджета. При этом, пользователь должен подтвердить данный пункт. Без подтверждения виджет не должен устанавливаться.
      • Количество использованных локализаций должно быть равно количеству ланг файлов и все ланги должны быть заполнены корректно.
      • Код виджета не должен опираться на стили switcher'a (switcher__on, switcher__off) - они deprecated и подлежат удалению из системы.
      • Виджет не должен скрывать/изменять/подменять рейтинги и отзывы в разделе интеграции и модальном окне настроек виджетов.
    • В backend-часть (если такая есть):
      • Все переменные и действия должны быть проверены.
      • cURL-запрос должен содержать timeout и лучше если он будет выполнен через наш класс.
      • Никаких дампов (даже закомментированных).
      • Никаких пустых методов.
      • Подключении сторонней библиотеки обсуждается отдельно. 

Модерацию проходят только те виджеты, которые должны быть опубликованы для всех пользователей amoCRM. Основные вопросы, которые рассматриваются при модерации:

  • Простота в использовании. Технически не подготовленный пользователь должен понимать, как включить виджет, как его настроить, как с ним работать и где получить поддержку. Чем работа с виджетом понятнее, тем больше пользователей его будет использовать.
  • Качество изготовления. Не должно быть известных разработчикам ошибок. При возникновении внештатных ситуаций виджет должен выдавать сообщения пользователю о сбое и контактными данными для обращение
  • Безопасность.

Как передать виджет на модерацию:

  1. Написать на support@amocrm.ru сообщение с указанием:
    • кода виджета, который нужно опубликовать
    • описание работы виджета
    • инструкция, в которой будет указано, как подключить виджет и как с ним работать
    • если требуется — тестовыми данными для подключения к сторонней системе, т.к. перед публикацию наши сотрудники проверят работоспособность виджета с точки зрения пользователя
  1. При возникновении проблем в работе виджета должен быть телефон и email, по которому конечный пользователь или сотрудник нашей технической поддержки может получить консультацию, помощь или исправление ошибки
  2. Виджет на момент передачи должен быть готов к публикации, т.е. не должно быть дебагов, тестовых данных в коде, должно быть готово описание виджета, должны быть определены языки для публикации
Next Step: PHP_Lib