https://github.com/mesilov/bitrix24-php-sdk/issues/273 – список задач на следующую сборку, если есть дополнительные требования или уточнения, то пишите сразу в нужную задачу.
GitHub
собрать релиз bitrix24-php-sdk v2.0-alpha.7 · Issue #273 · mesilov/bitrix24-php-sdk
Разработка ✅ унификация batch-операций #268 ✅ #280 ✅ #282 ✅ #283 ✅ #285 ✅ #274 ✅ #275 ✅ #292 #292 ✅ fix bug UnknownScopeCodeException - in refresh token response #295 ✅ add application level events...
У Битрикс24 наблюдаются проблемы в работе rest-api, ребята в курсе проблемы и занимаются её решением.
Если у вас в sdk включены логи, то проверьте дисковое пространство и успокойте клиентов.
Для критически важных интеграций после восстановления работы не забудьте пропихнуть данные, если алгоритм обмена не имеет встроенной защиты от подобных ситуаций.
Если у вас в sdk включены логи, то проверьте дисковое пространство и успокойте клиентов.
Для критически важных интеграций после восстановления работы не забудьте пропихнуть данные, если алгоритм обмена не имеет встроенной защиты от подобных ситуаций.
Вышли на финишную прямую сборки билда v2-alpha7, список изменений и закрытых задач — https://github.com/mesilov/bitrix24-php-sdk/issues/273
Если у вас ещё не горят сроки, то переключитесь на ветку и погоняйте новый функционал.
Если у вас ещё не горят сроки, то переключитесь на ветку и погоняйте новый функционал.
GitHub
собрать релиз bitrix24-php-sdk v2.0-alpha.7 · Issue #273 · mesilov/bitrix24-php-sdk
Разработка ✅ унификация batch-операций #268 ✅ #280 ✅ #282 ✅ #283 ✅ #285 ✅ #274 ✅ #275 ✅ #292 #292 ✅ fix bug UnknownScopeCodeException - in refresh token response #295 ✅ add application level events...
Быстрый вопрос: у когото были потребности вида «достать активити определённого типа» например, заполнения конкретной CRM-формы или звонки там. Т.е. можно поверх активити сделать хелперы для получения конкретных типов.
Если с таким сталкивались — напишите пожалуйста в комментариях
Если с таким сталкивались — напишите пожалуйста в комментариях
Новый релиз bitrix24-php-sdk — 2.0-alpha.7
Обновляемся и тестируем! 🚀
https://github.com/mesilov/bitrix24-php-sdk
Добавлено:
— скоуп
— скоуп
— скоуп
— скоуп
— скоуп
— скоуп
— скоуп
— скоуп
— скоуп
— скоуп
— добавлена поддержка событий уровня приложения:
— добавлена поддержка событий уровня приложения:
— добавлен метод
— добавлен метод
— скоуп
— скоуп
— добавлена поддержка DTO
— добавлен метод
— добавлен метод
— добавлена поддержка инициализации плейсментов
— добавлен метод
— добавлен метод
— добавлен метод
— добавлен метод
— добавлен метод
— добавлен метод
— добавлена поддержка полей
Изменено
— обновили состав скоупов
— увеличили требования для компонентов
— метод
— метод
— метод
— ❗️метод
— ❗️удалён класс
— ❗️удалён класс
— ❗️удалён метод
method
Исправления ошибок
— add bugfix for batch method for reverse order queries
— fix type compatible errors for
— error in
— error in
enum
etc
— добавлена возможность спонсирования разработки https://boosty.to/bitrix24-php-sdk
Обновляемся и тестируем! 🚀
https://github.com/mesilov/bitrix24-php-sdk
Добавлено:
— скоуп
Telephony
и сервисы по работе с ней— скоуп
UserConsent
и сервисы по работе с ним— скоуп
Placements
и сервисы по работе с ним— скоуп
IMOpenLines
и сервисы по работе с ним— скоуп
CRM
добавлен сервис Leads
— скоуп
CRM
добавлен сервис Activity
— скоуп
CRM
добавлен метод Services\CRM\Deal\Service\Batch:update
— скоуп
CRM
добавлен метод Services\CRM\Contact\Service\Batch:delete
— скоуп
CRM
добавлены сервисы Services\CRM\Activity\ReadModel
для: EmailFetcher
, OpenLineFetcher
, VoximplantFetcher
, WebFormFetcher
— скоуп
Main
добавлена поддержка сервиса Events
— добавлена поддержка событий уровня приложения:
ONAPPINSTALL
и ONAPPUNINSTALL
— добавлена поддержка событий уровня приложения:
PortalDomainUrlChangedEvent
— добавлен метод
Core\Batch:updateEntityItems
— добавлен метод
Core\Contracts\BatchInterface:updateEntityItems
— скоуп
Placements
добавлен сервис Placement\Service\UserFieldType
для работы с типами полей подразумеващюих встройку— скоуп
Telephony
, добавлена поддержка событий: OnExternalCallBackStart
, OnExternalCallStart
, OnVoximplantCallEnd
, OnVoximplantCallEnd
, OnVoximplantCallInit
, OnVoximplantCallStart
— добавлена поддержка DTO
ApplicationStatus
— добавлен метод
AccessToken:initFromPlacementRequest
— добавлен метод
ApplicationProfile:initFromArray
when application profile stored in ENV-variables— добавлена поддержка инициализации плейсментов
Bitrix24\SDK\Application\Requests\Placement\PlacementRequest
— добавлен метод
Credentials:initFromPlacementRequest
когда приложение инициализируется при загрузке плеймента— добавлен метод
Services\Main\Service:getServerTime
возвращает время сервера— добавлен метод
Services\Main\Service:getCurrentUserProfile
возвращает базовую инфу по текущему юзеру.— добавлен метод
Services\Main\Service:getAccessName
возвращает наименования разрешений.— добавлен метод
Services\Main\Service:checkUserAccess
— добавлен метод
Services\Main\Service:getMethodAffordability
— добавлена поддержка полей
operating
и operating_reset_at
в Bitrix24\SDK\Core\Response\DTO\Time
Изменено
— обновили состав скоупов
— увеличили требования для компонентов
symfony/*
до версии 6.*
— метод
Services\Main\Service:getAvailableMethods
помечен как deprecated— метод
Services\Main\Service:getAllMethods
помечен как deprecated— метод
Services\Main\Service:getMethodsByScope
помечен как deprecated— ❗️метод
Bitrix24\SDK\Core\Credentials
переименован: createFromWebhook
, createFromOAuth
, createFromPlacementRequest
— ❗️удалён класс
Bitrix24\SDK\Core\Response\DTO\ResponseDataCollection
— ❗️удалён класс
Bitrix24\SDK\Core\Response\DTO\Result
— ❗️удалён метод
CoreBuilder:withWebhookUrl
, используйтеmethod
CoreBuilder:withCredentials
Исправления ошибок
— add bugfix for batch method for reverse order queries
— fix type compatible errors for
Core\Result\AbstractItem
— error in
NetworkTimingParser
— error in
RenewedAccessToken
DTO, remove Scope
enum
etc
— добавлена возможность спонсирования разработки https://boosty.to/bitrix24-php-sdk
GitHub
GitHub - mesilov/bitrix24-php-sdk: A powerful PHP library for the Bitrix24 REST API
A powerful PHP library for the Bitrix24 REST API. Contribute to mesilov/bitrix24-php-sdk development by creating an account on GitHub.
👍2🔥2
Bitrix24 Apps & BITRIX24-PHP-SDK pinned «Новый релиз bitrix24-php-sdk — 2.0-alpha.7 Обновляемся и тестируем! 🚀 https://github.com/mesilov/bitrix24-php-sdk Добавлено: — скоуп Telephony и сервисы по работе с ней — скоуп UserConsent и сервисы по работе с ним — скоуп Placements и сервисы по работе с…»
Привет, новая сборка SDK на подходе:
2.0-beta.1 — 18.02.2024
https://github.com/mesilov/bitrix24-php-sdk/releases – полный список изменений
Добавлено
add php 8.3, 8.2 support, drop 8.1 and 8.0 support
add
add contracts for bitrix24 applications based on bitrix24-php-sdk -
add service builder factory https://github.com/mesilov/bitrix24-php-sdk/issues/328
add method
add method
add system CRM multi-field type
add scope
–
–
–
–
–
–
add method
add crm item support https://github.com/mesilov/bitrix24-php-sdk/issues/330
add enum
add Duplicate search support for
add
add CRM multifields support https://github.com/mesilov/bitrix24-php-sdk/issues/338
–
–
–
–
add Catalog https://github.com/mesilov/bitrix24-php-sdk/issues/364 scope services support
2.0-beta.1 — 18.02.2024
https://github.com/mesilov/bitrix24-php-sdk/releases – полный список изменений
Добавлено
add php 8.3, 8.2 support, drop 8.1 and 8.0 support
add
Symfony\Component\Uid\Uuid
requirementsadd contracts for bitrix24 applications based on bitrix24-php-sdk -
Bitrix24\SDK\Application\Contracts
, now added Bitrix24Account
add service builder factory https://github.com/mesilov/bitrix24-php-sdk/issues/328
add method
Bitrix24\SDK\Core\Credentials\Scope::initFromString
add method
Bitrix24\SDK\Application\ApplicationStatus::initFromString
add system CRM multi-field type
Bitrix24\SDK\Services\CRM\Common\Result\SystemFields\Types\Phone
add scope
user
,user_basic
,user_brief
,user.userfield
and services https://github.com/mesilov/bitrix24-php-sdk/issues/339–
Bitrix24\SDK\Services\User\Service\User::fields
- get user fields–
Bitrix24\SDK\Services\User\Service\User::current
- get current user–
Bitrix24\SDK\Services\User\Service\User::add
- add user–
Bitrix24\SDK\Services\User\Service\User::get
- get user–
Bitrix24\SDK\Services\User\Service\User::update
- update user–
Bitrix24\SDK\Services\User\Service\User::search
- search usersadd method
\Bitrix24\SDK\Services\CRM\Contact\Service\Batch::update()
for batch update contactsadd crm item support https://github.com/mesilov/bitrix24-php-sdk/issues/330
add enum
DealStageSemanticId
add Duplicate search support for
Bitrix24\SDK\Services\CRM\Duplicates\Service\Duplicate
add
x-request-id
header support https://github.com/mesilov/bitrix24-php-sdk/issues/354 add CRM multifields support https://github.com/mesilov/bitrix24-php-sdk/issues/338
–
Email
–
Phone
–
Website
–
IM
add Catalog https://github.com/mesilov/bitrix24-php-sdk/issues/364 scope services support
GitHub
Releases · mesilov/bitrix24-php-sdk
A powerful PHP library for the Bitrix24 REST API. Contribute to mesilov/bitrix24-php-sdk development by creating an account on GitHub.
👍7
Привет, у нас хорошие новости!
Спонсором разработки https://github.com/mesilov/bitrix24-php-sdk на этот год становится компания Яндекс.
В рамках программы грантов Yandex Open Source компания перечислит 600 000 руб. для развития проекта.
Поддержка будет оказана в виде оплаты расходов в их вычислительном облаке.
По всей видимости, в течении этого года, можно будет ожидать примеров приложений, развёрнутых на базе yandex.cloud
stay tuned 🚀
Если вы уже живёте в их облаке и разрабатываете приложения, то напишите пожалуйста в комментариях свои впечатления и какие сервисы вы используете.
Спонсором разработки https://github.com/mesilov/bitrix24-php-sdk на этот год становится компания Яндекс.
В рамках программы грантов Yandex Open Source компания перечислит 600 000 руб. для развития проекта.
Поддержка будет оказана в виде оплаты расходов в их вычислительном облаке.
По всей видимости, в течении этого года, можно будет ожидать примеров приложений, развёрнутых на базе yandex.cloud
stay tuned 🚀
Если вы уже живёте в их облаке и разрабатываете приложения, то напишите пожалуйста в комментариях свои впечатления и какие сервисы вы используете.
GitHub
GitHub - mesilov/bitrix24-php-sdk: A powerful PHP library for the Bitrix24 REST API
A powerful PHP library for the Bitrix24 REST API. Contribute to mesilov/bitrix24-php-sdk development by creating an account on GitHub.
🔥14👍2
Привет, вот вам тема на подумать и предложить более элегантное решение:
При разработке bitrix24-php-sdk я все методы стараюсь покрывать интеграционными тестами, это позволяет:
⁃ найти расхождения с документацией по структурам данных
⁃ убедиться здесь и сейчас, что оно работает
⁃ быстро дёрнуть метод при поиске решения и убедиться, что это то что надо.
Авторизация идёт через входящий вебхук, который прокидывается из переменных окружения, это позволяет:
- гнать тесты внутри CI пайплайна
- при необходимости подпихнуть свой и вызвать тест на интересующий метод (об свой портал)
Боль: часть методов требует токенов приложения, от вебхука они не работают.
Варианты:
1. На эти методы тестов не писать 🤡, а проверить работу на локальном приложении и надеяться на лучшее. Считаю, что этот подход можно использовать если остальные слишком дорогие в реализации.
2. Тесты написать, сделать костыль для получения токена локального приложения которое запущено рядом, т.е. если хотите протестировать эти методы, то сделайте локальное приложение по инструкции, поднимите его, получите актуальные токены и уже потом запускайте все тесты. Из минусов - такое не взлетит в CI-пайплайне.
3. Тесты написать, сделать костыль для получения и обновления токенов приложения, которое бежит как условная лямбда в облаке и хранит там-же актуальные токены. Будет работать локально и в CI-пайплайне, больше всего мороки.
Что выбираем?
При разработке bitrix24-php-sdk я все методы стараюсь покрывать интеграционными тестами, это позволяет:
⁃ найти расхождения с документацией по структурам данных
⁃ убедиться здесь и сейчас, что оно работает
⁃ быстро дёрнуть метод при поиске решения и убедиться, что это то что надо.
Авторизация идёт через входящий вебхук, который прокидывается из переменных окружения, это позволяет:
- гнать тесты внутри CI пайплайна
- при необходимости подпихнуть свой и вызвать тест на интересующий метод (об свой портал)
Боль: часть методов требует токенов приложения, от вебхука они не работают.
Варианты:
1. На эти методы тестов не писать 🤡, а проверить работу на локальном приложении и надеяться на лучшее. Считаю, что этот подход можно использовать если остальные слишком дорогие в реализации.
2. Тесты написать, сделать костыль для получения токена локального приложения которое запущено рядом, т.е. если хотите протестировать эти методы, то сделайте локальное приложение по инструкции, поднимите его, получите актуальные токены и уже потом запускайте все тесты. Из минусов - такое не взлетит в CI-пайплайне.
3. Тесты написать, сделать костыль для получения и обновления токенов приложения, которое бежит как условная лямбда в облаке и хранит там-же актуальные токены. Будет работать локально и в CI-пайплайне, больше всего мороки.
Что выбираем?
🤯1
Обнаружил себя в ситуации, когда в одном окне у меня открыта документация к REST-API Битрикс24 и ряд дампов с ответами от сервера, а в другом — руководство от посудомоечной машины.
В одном из них все сразу понятно, хорошо структурировано и не допускает различных прочтений.
А второе — это записки сумасшедшего, что ты несёшь блядь.
Так вот, с телефонией разобраться проще.
В одном из них все сразу понятно, хорошо структурировано и не допускает различных прочтений.
А второе — это записки сумасшедшего, что ты несёшь блядь.
Так вот, с телефонией разобраться проще.
👍2
Привет!
В рамках работ по выпуску сборки bitrix24-php-sdk v2.0 был полностью переписан скоуп
https://github.com/mesilov/bitrix24-php-sdk/pull/388
Теперь поддерживаются все методы, в т.ч. из неймспейса voximplant, всё покрыто тестами, в проект занесли rector.
Т.к. меняется мажорная версия, то происходит полная потеря обратной совместимости с предыдущими версиями 🤗
В рамках работ по выпуску сборки bitrix24-php-sdk v2.0 был полностью переписан скоуп
telephony
, https://github.com/mesilov/bitrix24-php-sdk/pull/388
Теперь поддерживаются все методы, в т.ч. из неймспейса voximplant, всё покрыто тестами, в проект занесли rector.
Т.к. меняется мажорная версия, то происходит полная потеря обратной совместимости с предыдущими версиями 🤗
GitHub
rewrite scope telephony by mesilov · Pull Request #388 · mesilov/bitrix24-php-sdk
A powerful PHP library for the Bitrix24 REST API. Contribute to mesilov/bitrix24-php-sdk development by creating an account on GitHub.
🔥2
А теперь — самая вкусная и срачеобразующая тема 👀
До какого уровня SDK должен помогать разработчикам разрабатывать приложения для Битрикс24?☕️
Есть несколько уровней:
0. Никак не должен
Каждый разработчик сам знает, как ему делать приложение и в подсказках не нуждется. «Дайте библиотеку транспортного слоя и отойдите».
1. Должен на уровне документирования предметной области
описания событийной модели, типовых юзкейсов, скорее всего — наглядно в стиле DDD. «Почитаю доку, быстро реализую всё сам».
2. Должен на уровне контрактов
Интерфейсы, структуры данных. «Спасибо за канву, имплементацию накидаю сам»
— вариант А Контракты лежат в отдельном репозитории, направление зависимостей sdk → контракты (меняются реже чем SDK) (см. доклад Package Design Principles in Practice [ru] / Макс Рафалко https://www.youtube.com/watch?v=JKt7hF_nxBM).
или
— вариант B Контракты лежат в текущем репозитриии, потому что разработчики документацию не читают и ставить несколько пакетов им лень.
3. Должен на уровне фреймворк-агностик реализации репозиториев \ юзкейсов и т.д.
Лежат в отдельном репозитории. «Сделал чекаут и подружил со своим любимым фреймворком или не смог»
4. Должен на уровне готового бандла\пакета для наиболее распространённого фреймворка (Laravel \ Symfony).
«Я подпихнул свои токены и через месяц уже залетаю с двух ног в топ 10 разработчиков маркет+ по выплатам»
Скорее всего, для релиза 2.0 будет реализован вариант 2 B, а как соберём большую часть граблей и будет пара макетных приложений в качестве proof of concept, то можно будет говорить о сплите и выносе контрактов в отдельный репозиторий.
Если у вас есть предложения, то самое время их написать
До какого уровня SDK должен помогать разработчикам разрабатывать приложения для Битрикс24?
Есть несколько уровней:
0. Никак не должен
Каждый разработчик сам знает, как ему делать приложение и в подсказках не нуждется. «Дайте библиотеку транспортного слоя и отойдите».
1. Должен на уровне документирования предметной области
описания событийной модели, типовых юзкейсов, скорее всего — наглядно в стиле DDD. «Почитаю доку, быстро реализую всё сам».
2. Должен на уровне контрактов
Интерфейсы, структуры данных. «Спасибо за канву, имплементацию накидаю сам»
— вариант А Контракты лежат в отдельном репозитории, направление зависимостей sdk → контракты (меняются реже чем SDK) (см. доклад Package Design Principles in Practice [ru] / Макс Рафалко https://www.youtube.com/watch?v=JKt7hF_nxBM).
или
— вариант B Контракты лежат в текущем репозитриии, потому что разработчики документацию не читают и ставить несколько пакетов им лень.
3. Должен на уровне фреймворк-агностик реализации репозиториев \ юзкейсов и т.д.
Лежат в отдельном репозитории. «Сделал чекаут и подружил со своим любимым фреймворком или не смог»
4. Должен на уровне готового бандла\пакета для наиболее распространённого фреймворка (Laravel \ Symfony).
«Я подпихнул свои токены и через месяц уже залетаю с двух ног в топ 10 разработчиков маркет+ по выплатам»
Скорее всего, для релиза 2.0 будет реализован вариант 2 B, а как соберём большую часть граблей и будет пара макетных приложений в качестве proof of concept, то можно будет говорить о сплите и выносе контрактов в отдельный репозиторий.
Если у вас есть предложения, то самое время их написать
Please open Telegram to view this post
VIEW IN TELEGRAM
Предположим, что у приложения может быть два варианта реализации. Храним токены доступа к порталу в приложении?
Anonymous Poll
80%
Да, по дефолту храним, пригодятся.
29%
Нет, не храним: работаем с токенами из браузера \ входящий событий
Чьи токены мы храним, какие кейсы обрабатываем?
Anonymous Poll
53%
Только админа, который установил приложение
65%
Если для работы необходимо, то начинаем хранить токены нескольких пользователей
47%
Если потеряли, то умеем сохранять «новый админский токен» при заходе админа в приложение
Пару человек в личку спросили, почему с контрактами так заморочено получается, сделал компактный пример с пояснением
https://www.youtube.com/watch?v=GupH7WB_7Tg
https://www.youtube.com/watch?v=GupH7WB_7Tg
YouTube
контрактный тест для bitrix24-php-sdk
Сделал подход к сущности «Bitrix24Accounts», что у нас есть:
– Контракт на методы самой сущности https://github.com/mesilov/bitrix24-php-sdk/blob/feature/383-refactor-app-contracts-and-add-documentation-for-use-cases/src/Application/Contracts/Bitrix24Accounts/Entity/Bitrix24AccountInterface.php
— Контракт на методы репозитория который хранит эту сущность https://github.com/mesilov/bitrix24-php-sdk/blob/feature/383-refactor-app-contracts-and-add-documentation-for-use-cases/src/Application/Contracts/Bitrix24Accounts/Repository/Bitrix24AccountRepositoryInterface.php
— Дока с описанием этого добра https://github.com/mesilov/bitrix24-php-sdk/blob/feature/383-refactor-app-contracts-and-add-documentation-for-use-cases/src/Application/Contracts/Bitrix24Accounts/Docs/Bitrix24Accounts.md
— Контрактные тесты https://github.com/mesilov/bitrix24-php-sdk/tree/feature/383-refactor-app-contracts-and-add-documentation-for-use-cases/tests/Unit/Application/Contracts/Bitrix24Accounts
Если вы делали приложение для Битрикс24, то пожалуйста:
1. Посмотрите на методы сущности и репозитория и сравните со своими
2. Напишите в комментариях, чего по вашему мнению не хватает.
3. Что ещё требуется в документации к этой сущности?
– Контракт на методы самой сущности https://github.com/mesilov/bitrix24-php-sdk/blob/feature/383-refactor-app-contracts-and-add-documentation-for-use-cases/src/Application/Contracts/Bitrix24Accounts/Entity/Bitrix24AccountInterface.php
— Контракт на методы репозитория который хранит эту сущность https://github.com/mesilov/bitrix24-php-sdk/blob/feature/383-refactor-app-contracts-and-add-documentation-for-use-cases/src/Application/Contracts/Bitrix24Accounts/Repository/Bitrix24AccountRepositoryInterface.php
— Дока с описанием этого добра https://github.com/mesilov/bitrix24-php-sdk/blob/feature/383-refactor-app-contracts-and-add-documentation-for-use-cases/src/Application/Contracts/Bitrix24Accounts/Docs/Bitrix24Accounts.md
— Контрактные тесты https://github.com/mesilov/bitrix24-php-sdk/tree/feature/383-refactor-app-contracts-and-add-documentation-for-use-cases/tests/Unit/Application/Contracts/Bitrix24Accounts
Если вы делали приложение для Битрикс24, то пожалуйста:
1. Посмотрите на методы сущности и репозитория и сравните со своими
2. Напишите в комментариях, чего по вашему мнению не хватает.
3. Что ещё требуется в документации к этой сущности?
GitHub
bitrix24-php-sdk/src/Application/Contracts/Bitrix24Accounts/Entity/Bitrix24AccountInterface.php at feature/383-refactor-app-contracts…
A powerful PHP library for the Bitrix24 REST API. Contribute to mesilov/bitrix24-php-sdk development by creating an account on GitHub.
🔥2👍1
Сущности, которые будут поддержаны на уровне контрактов в bitrix24-php-sdk v2
Если вы делаете приложения без сохранения контактных данных, то ничего страшного у вас будет только
В
Основная мотивация добавления поддержки
Если вы делаете приложения без сохранения контактных данных, то ничего страшного у вас будет только
Application Installations
и Bitrix24 Accounts
, там никаких перс. данных нет.В
Bitrix24 Partners
только общие данные — наименование, сайт, почта [email protected] и т.д. А должно ли приложение регистрировать открытую линию партнёра, который ставит приложение?Основная мотивация добавления поддержки
Contact Persons
— это упрощение поддержки приложений.