113 lines
3.6 KiB
Markdown
113 lines
3.6 KiB
Markdown
|
|
# CreateTGContact API - Документация
|
|||
|
|
|
|||
|
|
## Описание
|
|||
|
|
Отдельный эндпоинт для создания контактов из Telegram с минимальными данными.
|
|||
|
|
|
|||
|
|
## URL
|
|||
|
|
```
|
|||
|
|
POST https://crm.clientright.ru/webservice.php
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## Параметры
|
|||
|
|
|
|||
|
|
### Обязательные
|
|||
|
|
- **`operation`** = `CreateTGContact`
|
|||
|
|
- **`sessionName`** — токен сессии (получается через login)
|
|||
|
|
- **`tgid`** — ID пользователя в Telegram
|
|||
|
|
|
|||
|
|
### Опциональные
|
|||
|
|
- **`mobile`** — номер мобильного телефона
|
|||
|
|
- **`firstname`** — имя (по умолчанию: "Telegram")
|
|||
|
|
- **`lastname`** — фамилия (по умолчанию: "User_" + последние 4 цифры tgid)
|
|||
|
|
|
|||
|
|
## Пример запроса
|
|||
|
|
|
|||
|
|
### 1. Получение токена
|
|||
|
|
```bash
|
|||
|
|
curl -X POST "https://crm.clientright.ru/webservice.php" \
|
|||
|
|
-d "operation=getchallenge&username=api"
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 2. Авторизация
|
|||
|
|
```bash
|
|||
|
|
curl -X POST "https://crm.clientright.ru/webservice.php" \
|
|||
|
|
-d "operation=login&username=api&accessKey=GENERATED_KEY"
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 3. Создание контакта
|
|||
|
|
```bash
|
|||
|
|
curl -X POST "https://crm.clientright.ru/webservice.php" \
|
|||
|
|
-d "operation=CreateTGContact&sessionName=SESSION_TOKEN&tgid=123456789&mobile=79261234567&firstname=Иван&lastname=Петров"
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## Пример ответа
|
|||
|
|
|
|||
|
|
### Успех
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"success": true,
|
|||
|
|
"result": "123456"
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### Ошибка
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"success": false,
|
|||
|
|
"error": {
|
|||
|
|
"code": "INVALIDID",
|
|||
|
|
"message": "Не заполнено обязательное поле: tgid"
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## Особенности
|
|||
|
|
|
|||
|
|
### Форматирование телефона
|
|||
|
|
- Автоматически очищается от нецифровых символов
|
|||
|
|
- Приводится к формату 7XXXXXXXXXX
|
|||
|
|
- Поддерживает форматы: 8XXXXXXXXXX, XXXXXXXXXX, 7XXXXXXXXXX
|
|||
|
|
|
|||
|
|
### Дефолтные значения
|
|||
|
|
- **Имя:** "Telegram" (если не указано)
|
|||
|
|
- **Фамилия:** "User_" + последние 4 цифры tgid (если не указана)
|
|||
|
|
- **Email:** пустой
|
|||
|
|
- **Дата рождения:** 01-01-1900
|
|||
|
|
- **ИНН:** пустой
|
|||
|
|
- **Адрес:** пустой
|
|||
|
|
|
|||
|
|
### Логика дублирования
|
|||
|
|
- Проверка по полю `phone` (где хранится tgid)
|
|||
|
|
- Если контакт с таким tgid существует — обновляется
|
|||
|
|
- Если не существует — создается новый
|
|||
|
|
|
|||
|
|
## Логирование
|
|||
|
|
Все операции записываются в файл `logs/CreateTGContact.log`
|
|||
|
|
|
|||
|
|
## Регистрация операции
|
|||
|
|
Операция `CreateTGContact` зарегистрирована в базе данных CRM с ID: 47
|
|||
|
|
|
|||
|
|
## Отличия от CreateContact
|
|||
|
|
|
|||
|
|
| Параметр | CreateContact | CreateTGContact |
|
|||
|
|
|----------|---------------|-----------------|
|
|||
|
|
| Обязательные поля | firstname, lastname, birthday, mobile, inn | tgid |
|
|||
|
|
| Дублирование | По mobile | По tgid (в поле phone) |
|
|||
|
|
| Дефолтные значения | Нет | Есть |
|
|||
|
|
| Логи | CreateContact.log | CreateTGContact.log |
|
|||
|
|
|
|||
|
|
## Интеграция с Telegram
|
|||
|
|
|
|||
|
|
```php
|
|||
|
|
// Пример для Telegram бота
|
|||
|
|
$tgid = $message['from']['id'];
|
|||
|
|
$mobile = $message['contact']['phone_number'] ?? '';
|
|||
|
|
$firstname = $message['from']['first_name'] ?? '';
|
|||
|
|
$lastname = $message['from']['last_name'] ?? '';
|
|||
|
|
|
|||
|
|
$contact_id = vtws_createtgcontact($tgid, $mobile, $firstname, $lastname);
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## Автор
|
|||
|
|
Фёдор - 2025-09-29
|