mirror of
https://github.com/BushlanovDev/max-bot-api-client-php.git
synced 2026-08-21 07:42:09 +00:00
Compare commits
8 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| f788038189 | |||
| 22b328b0c3 | |||
| daa3d297da | |||
| a40e47ebc0 | |||
| 99f66483f3 | |||
| e5a6ec40fc | |||
| 9eb8783f40 | |||
| 40de64593b |
@@ -16,6 +16,8 @@
|
||||
|
||||
> Если вы новичок, то можете прочитать [официальную документацию](https://dev.max.ru/), написанную разработчиками Max.
|
||||
|
||||
> ℹ️ С полной документацией [вы можете ознакомиться тут](./docs/README.md).
|
||||
|
||||
### Получение токена
|
||||
|
||||
Откройте диалог с [MasterBot](https://max.ru/MasterBot), следуйте инструкциям и создайте нового бота. После создания
|
||||
@@ -43,6 +45,55 @@ composer require bushlanov-dev/max-bot-api-client-php
|
||||
|
||||
### Использование
|
||||
|
||||
> [!NOTE]
|
||||
> С 19 июля 2026 основной домен api изменится с platform-api.max.ru на platform-api2.max.ru и начнет использовать чебурнетовский сертификат!
|
||||
> Вам необходимо либо установить сертификат, либо отключить его проверку, оба варианта описаны ниже.
|
||||
|
||||
Установка сертификата на примере ОС Ubuntu
|
||||
|
||||
```bash
|
||||
# корневой сертификат
|
||||
curl -k -O "https://gu-st.ru/content/Other/doc/russian_trusted_root_ca.cer"
|
||||
# промежуточный сертификат
|
||||
curl -k -O "https://gu-st.ru/content/Other/doc/russian_trusted_sub_ca.cer"
|
||||
|
||||
sudo cp russian_trusted_root_ca.cer /usr/local/share/ca-certificates/russian_trusted_root_ca.crt
|
||||
sudo cp russian_trusted_sub_ca.cer /usr/local/share/ca-certificates/russian_trusted_sub_ca.crt
|
||||
|
||||
sudo update-ca-certificates
|
||||
```
|
||||
|
||||
> [!TIP]
|
||||
> **Гибкая настройка Guzzle**
|
||||
> Мах часто меняют домен API а теперь еще и сертификат.
|
||||
> Если вы не хотите или не можете установить сертификат на прямую в систему, можно собрать объект API с кастомным Guzzle клиентом и отключить проверку сертификата.
|
||||
> Во всех остальных случаях достаточно минимального $api = new Api('YOUR_BOT_API_TOKEN');
|
||||
|
||||
```php
|
||||
$guzzle = new \GuzzleHttp\Client([
|
||||
'timeout' => 10,
|
||||
'connect_timeout' => 5,
|
||||
'read_timeout' => 10,
|
||||
'headers' => ['User-Agent' => 'max-bot-api-client-php'],
|
||||
'verify' => false, // Отключить проверку либо путь до сертификата '/path/to/cert.pem'
|
||||
]);
|
||||
|
||||
$httpFactory = new \GuzzleHttp\Psr7\HttpFactory();
|
||||
|
||||
$client = new \BushlanovDev\MaxMessengerBot\Client(
|
||||
accessToken: 'YOUR_BOT_API_TOKEN',
|
||||
httpClient: $guzzle,
|
||||
requestFactory: $httpFactory,
|
||||
streamFactory: $httpFactory,
|
||||
baseUrl: 'https://platform-api2.max.ru',
|
||||
);
|
||||
|
||||
$api = new BushlanovDev\MaxMessengerBot\Api(
|
||||
client: $client,
|
||||
modelFactory: new BushlanovDev\MaxMessengerBot\ModelFactory(),
|
||||
);
|
||||
```
|
||||
|
||||
Отправка сообщения с клавиатурой
|
||||
|
||||
```php
|
||||
@@ -134,7 +185,7 @@ $handler->handle();
|
||||
|
||||
#### Chats
|
||||
|
||||
- [x] `GET /chats` (`getChats`) - [*Получение списка всех чатов бота.*](./docs/README.md#Получение-списка-всех-чатов-бота)
|
||||
- [x] ~~`GET /chats` (`getChats`) - [*Получение списка всех чатов бота.*](./docs/README.md#Получение-списка-всех-чатов-бота-deprecated)~~ (deprecated)
|
||||
- [x] `GET /chats/{chatLink}` (`getChatByLink`) - [*Получение информации о чате по ссылке.*](./docs/README.md#Получение-информации-о-чате-по-ссылке)
|
||||
- [x] `GET /chats/{chatId}` (`getChat`) - [*Получение информации о чате по ID.*](./docs/README.md#Получение-информации-о-чате-по-ID)
|
||||
- [x] `PATCH /chats/{chatId}` (`editChat`) - [*Редактирование информации о чате.*](./docs/README.md#Редактирование-информации-о-чате)
|
||||
|
||||
+2
-2
@@ -33,10 +33,10 @@
|
||||
"require-dev": {
|
||||
"friendsofphp/php-cs-fixer": "^3.77",
|
||||
"bushlanov-dev/php-coverage-badger": "^2.1",
|
||||
"laravel/framework": "^11.0",
|
||||
"laravel/framework": "^12.0",
|
||||
"mikey179/vfsstream": "^1.6",
|
||||
"mockery/mockery": "^1.6",
|
||||
"orchestra/testbench": "^9.0",
|
||||
"orchestra/testbench": "^10.0",
|
||||
"php-mock/php-mock-phpunit": "^2.13",
|
||||
"phpstan/phpstan": "^2.1",
|
||||
"phpunit/phpunit": "^12.0",
|
||||
|
||||
+23
-6
@@ -6,7 +6,7 @@
|
||||
- `GET /me` (`getBotInfo`) - [*Получение информации о боте.*](#Получение-информации-о-боте)
|
||||
- `PATCH /me` (`editBotInfo`) - [*Редактирование информации о боте.*](#Редактирование-информации-о-боте)
|
||||
- [Чаты](#Чаты)
|
||||
- `GET /chats` (`getChats`) - [*Получение списка всех чатов бота.*](#Получение-списка-всех-чатов-бота)
|
||||
- ~~`GET /chats` (`getChats`)~~ - [*Получение списка всех чатов бота.*](#Получение-списка-всех-чатов-бота-deprecated) (deprecated)
|
||||
- `GET /chats/{chatLink}` (`getChatByLink`) - [*Получение информации о чате по ссылке.*](#Получение-информации-о-чате-по-ссылке)
|
||||
- `GET /chats/{chatId}` (`getChat`) - [*Получение информации о чате по ID.*](#Получение-информации-о-чате-по-ID)
|
||||
- `PATCH /chats/{chatId}` (`editChat`) - [*Редактирование информации о чате.*](#Редактирование-информации-о-чате)
|
||||
@@ -84,10 +84,27 @@ $api = new Api('YOUR_BOT_API_TOKEN');
|
||||
Так же вы можете создать экземпляр бота гибко настроив все зависимости под свои нужды.
|
||||
|
||||
```php
|
||||
$api = new Api(
|
||||
client: new Client(...),
|
||||
modelFactory: new ModelFactory(),
|
||||
logger: new YourPsrLogger(),
|
||||
$guzzle = new \GuzzleHttp\Client([
|
||||
'timeout' => 10,
|
||||
'connect_timeout' => 5,
|
||||
'read_timeout' => 10,
|
||||
'headers' => ['User-Agent' => 'max-bot-api-client-php'],
|
||||
// 'verify' => false, // Отключить проверку либо путь до сертификата '/path/to/cert.pem'
|
||||
]);
|
||||
|
||||
$httpFactory = new \GuzzleHttp\Psr7\HttpFactory();
|
||||
|
||||
$client = new \BushlanovDev\MaxMessengerBot\Client(
|
||||
accessToken: 'YOUR_BOT_API_TOKEN',
|
||||
httpClient: $guzzle,
|
||||
requestFactory: $httpFactory,
|
||||
streamFactory: $httpFactory,
|
||||
baseUrl: 'https://platform-api2.max.ru',
|
||||
);
|
||||
|
||||
$api = new BushlanovDev\MaxMessengerBot\Api(
|
||||
client: $client,
|
||||
modelFactory: new BushlanovDev\MaxMessengerBot\ModelFactory(),
|
||||
);
|
||||
```
|
||||
|
||||
@@ -119,7 +136,7 @@ $botInfo = $api->editBotInfo(
|
||||
|
||||
## Чаты
|
||||
|
||||
### Получение списка всех чатов бота
|
||||
### Получение списка всех чатов бота (deprecated)
|
||||
|
||||
Возвращает информацию о чатах, в которых участвовал бот.
|
||||
Результат включает список чатов и маркер для перехода к следующей странице.
|
||||
|
||||
+2
-2
@@ -48,11 +48,11 @@ use RuntimeException;
|
||||
*/
|
||||
class Api
|
||||
{
|
||||
public const string LIBRARY_VERSION = '1.6.3';
|
||||
public const string LIBRARY_VERSION = '1.6.4';
|
||||
|
||||
public const string API_VERSION = '1.2.5';
|
||||
|
||||
private const string API_BASE_URL = 'https://platform-api.max.ru';
|
||||
private const string API_BASE_URL = 'https://platform-api2.max.ru';
|
||||
|
||||
private const string METHOD_GET = 'GET';
|
||||
private const string METHOD_POST = 'POST';
|
||||
|
||||
Reference in New Issue
Block a user