A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Cancel Create
yclients-api-php / README.md
- Go to file T
- Go to line L
- Copy path
- Copy permalink
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Cannot retrieve contributors at this time
374 lines (290 sloc) 21.8 KB
- Open with Desktop
- View raw
- Copy raw contents Copy raw contents Copy raw contents
Copy raw contents
YCLIENTS API PHP Wrapper
Обертка на PHP7+ для работы с REST API YCLIENTS v2.0 c троттлингом запросов к API и логированием в файл.
Данная библиотека является форком Yclients API wrapper со следующими изменениями:
- добавлен регулируемый троттлинг запросов к API;
- добавлена отключаемая проверка SSL/TLS-сертификата сервера YCLIENTS;
- добавлена проверка наличия сообщений об ошибках в ответе API;
- добавлено логирование запросов и ответов сервера в файл или STDOUT;
- изменен и дополнен тест сообщений об ошибках;
- добавлены методы getSchedule(), getGroups();
- изменен метод postHooks() в связи с изменениями в API;
- добавлен метод getAll() для выгрузки всех сущностей одного типа с использованием генератора при обработке больших объемов данных.
- Требования
- Установка
- Класс YclientsApi
- Список методов класса
- Авторизация
- Онлайн-запись
- Записи пользователя
- Сети салонов
- Компании
- Категория услуг
- Услуги
- Сотрудники
- Клиенты
- Записи
- Расписание работы сотрудников
- Даты для журнала
- Комментарии
- Пользователи компании
- Кассы
- SMS рассылка
- Склады
- Уведомления о событиях webhooks
- Вспомогательные методы
- PHP >= 7.0.
- Произвольный автозагрузчик классов, реализующий стандарт PSR-4.
Установка через composer:
Первоначальные настройки: Работа с журналом записи
$ composer require andrey-tech/yclients-api-php:»~1.7″
«andrey-tech/yclients-api-php»: «~1.7»
в секцию require файла composer.json.
Для работы с REST API YCLIENTS используется методы класса YclientsYclientsApi .
При возникновении ошибок выбрасывается исключение с объектом класса YclientsYclientsException .
Список методов класса
- __construct(string $tokenPartner = null) Конструктор класса.
- setTokenPartner(string $tokenPartner) :void Устанавливает токен партнера.
- getTokenPartner() :string Возвращает токен партнера.
- getAuth(string $login, string $password) :array Выполняет авторизацию и возвращает токен пользователя.
- getBookform($id) :array Возвращает настройки формы бронирования.
- getI18n($locale = ‘ru-RU’) :array Возвращает параметры интернационализации.
- getBookServices($companyId, $staffId = null, DateTime $datetime = null, array $serviceIds = null, array $eventIds = null) :array Возвращает список услуг, доступных для бронирования.
- getBookStaff($companyId, $staffId = null, DateTime $datetime = null, array $serviceIds = null, array $eventIds = null, $withoutSeances = false) :array Возвращает список сотрудников, доступных для бронирования.
- getBookDates($companyId, $staffId = null, array $serviceIds = null, DateTime $date = null, array $eventIds = null) :array Возвращает список дат, доступных для бронирования.
- getBookTimes($companyId, $staffId, DateTime $date, array $serviceIds = null, array $eventIds = null) : array Возвращает список сеансов, доступных для бронирования.
- postBookCode($companyId, $phone, $fullname = null) :array Отправляет СМС код подтверждения номера телефона.
- postBookCheck($companyId, array $appointments): array Проверяет параметры записи.
- postBookRecord($companyId, array $person, array $appointments, $code = null, array $notify = null, $comment = null, $apiId = null) :array Создает запись на сеанс.
- postUserAuth($phone, $code) :array Выполняет авторизовацию пользователя по номеру телефона и SMS-коду.
- getUserRecords($recordId, $recordHash = null, $userToken = null): array Возвращает записи пользователя.
- deleteUserRecords($recordId, $recordHash = null, $userToken = null): array Удаляет записи пользователя.
- getGroups($userToken): array Возвращает список доступных сетей салонов
- getCompanies($groupId = null, $active = null, $moderated = null, $forBooking = null, $my = null, $userToken = null) :array Возвращает список компаний.
- postCompany(array $fields, $userToken) :array Создает компанию.
- getCompany($id) :array Возвращает компанию.
- putCompany($id, array $fields, $userToken) :array Изменяет компанию.
- deleteCompany($id) :array Удаляет компанию.
- getServiceCategories($companyId, $categoryId = null, $staffId = null) :array Возвращает список категорий услуг.
- postServiceCategories($companyId, $categoryId, $fields, $userToken) :array Создает категорию услуг.
- getServiceCategory($companyId, $categoryId) :array Возвращает категорию услуг.
- putServiceCategory($companyId, $categoryId, $fields, $userToken) :array Изменяет категорию услуг.
- deleteServiceCategory($companyId, $categoryId, $userToken) :array Удаляет категорию услуг.
- getServices($companyId, $serviceId = null, $staffId = null, $categoryId = null) :array Возвращает список услуг или конкретную услугу.
- postServices($companyId, $serviceId, $categoryId, $title, $userToken, array $fields = null) :array Создает новую услугу.
- putServices($companyId, $serviceId, $categoryId, $title, $userToken, array $fields = null) :array Изменяет услугу.
- deleteServices($companyId, $serviceId, $userToken) :array Удаляет услугу.
- getStaff($companyId, $staffId = null) :array Возвращает список сотрудников или конкретного сотрудника.
- postStaff($companyId, $staffId, $name, $userToken, array $fields = null) :array Добавляет нового сотрудника.
- putStaff($companyId, $staffId, array $fields, $userToken) :array Изменяет сотрудника.
- deleteStaff($companyId, $staffId, $userToken) :array Удаляет сотрудника.
- getClients($companyId, $userToken, $fullname = null, $phone = null, $email = null, $page = null, $count = null) :array Возвращает список клиентов.
- postClients($companyId, $name, $phone, $userToken, array $fields = []) :array Добавляет клиента.
- getClient($companyId, $id, $userToken) :array Возвращает клиента.
- putClient($companyId, $id, $userToken, array $fields) :array Изменяет клиента.
- deleteClient($companyId, $id, $userToken) :array Удаляет клиента.
- getRecords($companyId, $userToken, $page = null, $count = null, $staffId = null, $clientId = null, DateTime $startDate = null, DateTime $endDate = null, DateTime $cStartDate = null, DateTime $cEndDate = null, DateTime $changedAfter = null, DateTime $changedBefore = null) :array Возвращает список записей.
- postRecords($companyId, $userToken, $staffId, $services, $client, DateTime $datetime, $seanceLength, $saveIfBusy, $sendSms, $comment = null, $smsRemainHours = null, $emailRemainHours = null, $apiId = null, $attendance = null) :array Создает новую запись.
- getRecord($companyId, $recordId, $userToken) :array Возвращает запись.
- putRecord($companyId, $recordId, $userToken, array $fields) :array Изменяет запись.
- deleteRecord($companyId, $recordId, $userToken) :array Удаляет запись.
Расписание работы сотрудников
- getSchedule($companyId, $staffId, $startDate, $endDate, $userToken) :array Возвращает расписание работы сотрудника.
- putSchedule($companyId, $staffId, $userToken, $fields) :array Изменяет расписание работы сотрудника.
Даты для журнала
- getTimetableDates($companyId, DateTime $date, $staffId, $userToken) :array Возвращает список дат для журнала.
- getTimetableSeances($companyId, DateTime $date, $staffId, $userToken) :array Возвращает список сеансов для журнала.
- getComments($companyId, $userToken, DateTime $startDate = null, DateTime $endDate = null, $staffId = null, $rating = null) :array Возвращает комментарии.
- getCompanyUsers($companyId, $userToken) :array Возвращает пользователей компании.
- getAccounts($companyId, $userToken) :array Возвращает кассы компании.
- sendSMS($companyId, $userToken, $clientIds, $text) :array Отправляет SMS.
- getStorages($companyId, $userToken) :array Возвращает склады компании.
Уведомления о событиях webhooks
- getHooks($companyId, $userToken) :array Возвращает настройки уведомлений о событиях.
- postHooks($companyId, $fields, $userToken) :array Изменяет настройки уведомлений о событиях.
- getAll($callback) :Generator Загружает все сущности одного типа.
- $callback — анонимная функция function(int $page, int $count) < . >, реализующая постараничную загрузку сущностей с помощью методов getClients() или getRecords() :
- $page — номер загружаемой страницы;
- $count — максимальное количество сущностей, загружаемых на странице.
Дополнительные параметры работы устанавливаются через публичные свойства объекта класса YclientsApi .
$debug | false | Включает отладочный режим с сохранением запросов и ответов в лог файл или выводом в STDOUT |
$debugLogFile | logs/debug.log | Устанавливает лог файл отладочного режима (null — вывод в STDOUT) |
$throttle | 5 | Устанавливает максимальное число запросов к API YCLIENTS в секунду (не более 5 запросов в секунду) |
$verifySSLCerfificate | true | Включает проверку SSL/TLS-сертификата сервера YCLIENTS |
$SSLCertificateFile | ‘cacert.pem’ | Устанавливает файл SSL/TLS-сертификатов X.509 корневых удостоверяющих центров (CA) в формате РЕМ (null — файл, указанный в curl.cainfo php.ini) |
$curlConnectTimeout | 30 | Устанавливает таймаут соединения с сервером YCLIENTS, секунды |
$curlTimeout | 30 | Устанавливает таймаут обмена данными с сервером YCLIENTS, секунды |
$limitCount | 300 | Максимальное количество сушностей, загружаемых за один запрос к API в методе getAll() |
Источник: github.com
Настройка интеграции WhatsApp, Telegram и СМС и YCLIENTS
Процесс настройки состоит из 2 простых шагов (последовательность неважна):
1. Настройка whatsapp
2. Настройка отправки в YCLIENTS
Настройка по видео займет 5-10 минут, если вам неудобно смотреть видео — вы можете почитать текстовую инструкцию. При любых вопросах — мы на связи в чате (справа снизу) и по телефону 8(800) 200-1263
Текстовая инструкция как настроить интеграцию Yclients через WhatsaApp
Выберите нас в YCLIENTS
Для этого откройте наше приложение в разделе интеграции или перейдите по ссылке
Нажмите «Подключить»
YCLIENTS спросит, можно ли предоставить нам данные о вашем филиале, нажмите продолжить. Не беспокойтесь, ваши данные нужны только для отправки сообщений
Зарегистрируйтесь у нас в системе
Возможно этот шаг будет пройден автоматически из-за авторегистрации
Если всё ок — в YCLIENTS будет отображаться как «Подключено». Значит мы почти закончили 🙂
Если выдало ошибку — причины может быть 2:
1. На данный момент мы поддерживаем привязку не более чем 1 филиала через раздел интеграции, если вы хотите подключить ещё один или несколько филиалов,
2. У вас может быть недостаточно прав для настройки
В этом случае вы можете подключить их по старому способу интеграции
Активируйте тестовый период
После регистрации аккаунта, сообщите нам, что хотите активировать 10 дневный бесплатный период отправки сообщений через WhatsApp, для этого нажмите кнопку при настройке, или напишите нам в WhatsApp. Оператор спросит, зарегистрировались ли вы, так что после того, как напишете, скорее переходите к следующему шагу
Откройте раздел WhatsApp
После регистрации аккаунта, сообщите нам, что хотите активировать 10 дневный бесплатный период отправки сообщений через WhatsApp, для этого нажмите кнопку при настройке, или напишите нам в WhatsApp. Оператор спросит, зарегистрировались ли вы, так что после того, как напишете, скорее переходите к следующему шагу
Подготовьте 2 устройства (2 телефона или телефон и компьютер)
Чтобы активировать WhatsApp, вам понадобится 2 устройства (телефон и компьютер или 2 телефона), на одном из них должна быть открыта эта страница (к примеру на компьютере), а на другом WhatsApp.
Важный момент, не пользуйтесь новой, только что активированной или купленной симкартой, это драматично повышает риск блокировки. Подробнее в статье
Отсканируйте QR код
- В приложении WhatsApp выберите кнопку «Сканировать QR-код» или «Привязка устройства».
- Откроется сканер QR-кода.
- Отсканируйте QR код с его помощью
- Если он не открылся, необходимо вернуться назад и выполнить шаг 1.
Выберите канал доставки сообщений
Откройте настройки и укажите канал доставки сообщений. В случае выбора только WhatsApp, сообщения будут отправлены только в мессенджер, а в случае выбора WhatsApp ➡️ СМС, сообщение сначала будет отправлено в WhatsApp, и в случае недоставки, как СМС.
Ура, вы всё настроили, поздравляем!
- Если вы еще не настроили связь Push и Yclients, сделайте это по инструкции ниже
- В отличие от СМС, в котором доступно всего 70 символов, в случае в WhatsApp вам доступно 1000 символов, используйте вашу фантазию на максимум:). Мы составили инструкцию и шаблоны сообщений для Yclients по ссылке
WhatsApp MAX
Вы можете подключить тариф WhatsApp Max. Всего за 750 рублей в месяц в нём доступны:
Массовые рассылки по WhatsApp, которые в десятки раз экономичнее, чем по СМС.
WhatsApp-бот, который помогает вашим клиентам получить ответы на базовые вопросы
Страничка отзывов, которая увеличит количество хороших отзывов
Возможность отправки сообщений в Телеграм, что будет работать параллельно с WhatsApp.
Подтверждение визита
Рассылки в WhatsApp
Массовые рассылки через WhatsApp намного эффективней и выгодней чем СМС. Вы можете писать тексты длиной в 1000 символов, клиенты могут отвечать вам напрямую, а цена в 10 раз дешевле чем СМС.
Страничка отзывов
Станичка отзывов несет массу плюсов:
1. Она будет перехватывать плохие оценки, чтобы вы могли оперативно на них реагировать
2. Она позволит тем, кто оставляет хорошие оценки предлагать оставить отзыв там, где им удобно, в гугле, яндексе и тп
С ней вы будете получать больше хороших отзывов!
Чат-бот
Вы можете подключить бота, который снимет с вас часть задач, отвечая на базовые вопросы.
Telegram
Вы можете подключить каскад Telegram-WhatsApp-СМС, чтобы люди получали сообщения там, где им удобно, а если у них нет мессенджера — отправлялись в СМС
Клиенты не приходят и вы теряете деньги? Подтверждение визита решает эту проблему
Указываете за сколько бот дожен напоминать о визите
Бот пишет клиенту предлагая ✅ подтвердить или ❌ отменить визит
Если клиент подтверждает — меняем статус визита на подтверждён
От 1600 рублей в месяц, 10 дней бесплатно!
Цены и тарифы
Выберите тариф и срок действия
Стандартная интеграция Whatsapp + каскадные отправки в телеграм
2 000 руб. / мес.
Выберите тариф
WhatsApp Max
Массовые рассылки, чат-бот, страничка отзывов, каскад с телеграм
2 750 руб. / мес.
WhatsApp Super
Безлимитные рассылки, чат-бот, страничка отзывов, Телеграм
3 000 руб. / мес.
Стандартная интеграция Telegram с CRM
2 000 руб. / мес.
Посмотреть другие тарифы
Базовый тариф на один номер. Подойдет большинству заведений. Идеален для старта.
Стандартный
Перед заключением договора потребуется проверка
Если в вашем салоне работает один или два человека, или вы из города с населением менее 75000 человек.
Источник: messengerocket.ru
Инструкция для настройки модуля Yclients
1. Регистрация имени отправителя, для юридического лица (для физического лица пункт 1 пропустить)
Регистрация имени отправителя
1.1.Зайдите в личный кабинет SIGMA messaging.
1.2.Перейдите в раздел «Имена отправителей» . В блоке «Имена отавителей» нажмите кнопку «Создать» .
1.3.В открывшемся окне выберите канал: SMS, Viber, Вконтакте.
1.4.Укажите Имя отправителя в соответствующем поле. Имя может содержать только латинские буквы, цифры, подчеркивания, тире и точки. Длина имени от 4 до 11 символов.
1.5.В поле «Комментарий» добавьте тип юридического лица: ООО/ИП, наименование организации и ИНН.