|
14 | 14 |
|
15 | 15 | ## Быстрый старт |
16 | 16 |
|
17 | | -> Если вы новичок, то можете прочитать [официальную документацию](https://dev.max.ru/), написанную разработчиками Max |
| 17 | +> Если вы новичок, то можете прочитать [официальную документацию](https://dev.max.ru/), написанную разработчиками Max. |
18 | 18 |
|
19 | 19 | ### Получение токена |
20 | 20 |
|
21 | 21 | Откройте диалог с [MasterBot](https://max.ru/MasterBot), следуйте инструкциям и создайте нового бота. После создания |
22 | 22 | бота MasterBot отправит вам токен. |
23 | 23 |
|
| 24 | +### Установка библиотеки |
| 25 | + |
| 26 | +```bash |
| 27 | +composer require bushlanov-dev/max-bot-api-client-php |
| 28 | +``` |
| 29 | + |
| 30 | +### Использование |
| 31 | + |
| 32 | +Отправка сообщения с клавиатурой |
| 33 | + |
| 34 | +```php |
| 35 | +$api = new \BushlanovDev\MaxMessengerBot\Api('YOUR_BOT_API_TOKEN'); |
| 36 | + |
| 37 | +$api->sendMessage( |
| 38 | + userId: 123, // ID пользователя получателя сообщения |
| 39 | + chatId: 321, // Или ID чата, в который нужно отправить сообщение |
| 40 | + text: 'Привет!', // Текст сообщения, вы можете использовать HTML или Markdown |
| 41 | + attachments: [ |
| 42 | + new InlineKeyboardAttachmentRequest([ |
| 43 | + [new CallbackButton('Нажми меня!', 'payload_button1')], |
| 44 | + [new LinkButton('Нажми меня!', 'https://example.com')], |
| 45 | + ]), |
| 46 | + ], |
| 47 | + format: MessageFormat::Markdown, // Формат сообщения (Markdown или HTML) |
| 48 | +); |
| 49 | +``` |
| 50 | + |
| 51 | +Подписка на вэб хуки |
| 52 | + |
| 53 | +```php |
| 54 | +$api->subscribe( |
| 55 | + new \BushlanovDev\MaxMessengerBot\Models\SubscriptionRequest( |
| 56 | + 'https://example.com/webhook', // URL на который будут приходить хуки |
| 57 | + 'super_secret', // Секретная фраза для проверки хуков |
| 58 | + [ |
| 59 | + // Типы хуков которые вы хотите получать (либо ничего не указывать, чтобы получать все) |
| 60 | + \BushlanovDev\MaxMessengerBot\Enums\UpdateType::MessageCreated, |
| 61 | + ], |
| 62 | + ), |
| 63 | +); |
| 64 | +``` |
| 65 | + |
| 66 | +Обработка хуков |
| 67 | + |
| 68 | +```php |
| 69 | +$webhookHandler = $api->createWebhookHandler(); |
| 70 | + |
| 71 | +$webhookHandler->addHandler(UpdateType::BotStarted, function (BotStartedUpdate $update, Api $api) { |
| 72 | + $api->sendMessage( |
| 73 | + chatId: $update->chatId, |
| 74 | + text: 'Я запущен!', |
| 75 | + ); |
| 76 | +}); |
| 77 | +``` |
| 78 | + |
24 | 79 | ## Реализованные методы |
25 | 80 |
|
26 | 81 | #### Bots |
27 | 82 |
|
28 | | -- [x] `GET /me` (`getBotInfo`) — *Получение информации о боте.* |
29 | | -- [ ] `PATCH /me` (`editBotInfo`) — *Редактирование информации о боте.* |
| 83 | +- [x] `GET /me` (`getBotInfo`) - *Получение информации о боте.* |
| 84 | +- [ ] `PATCH /me` (`editBotInfo`) - *Редактирование информации о боте.* |
30 | 85 |
|
31 | 86 | #### Chats |
32 | 87 |
|
33 | | -- [x] `GET /chats` (`getChats`) — *Получение списка всех чатов бота.* |
34 | | -- [x] `GET /chats/{chatLink}` (`getChatByLink`) — *Получение информации о чате по ссылке.* |
35 | | -- [x] `GET /chats/{chatId}` (`getChat`) — *Получение информации о чате по ID.* |
36 | | -- [ ] `PATCH /chats/{chatId}` (`editChat`) — *Редактирование информации о чате.* |
37 | | -- [x] `DELETE /chats/{chatId}` (`deleteChat`) — *Удаление чата.* |
38 | | -- [x] `POST /chats/{chatId}/actions` (`sendAction`) — *Отправка действия в чат (например, "печатает...").* |
39 | | -- [x] `GET /chats/{chatId}/pin` (`getPinnedMessage`) — *Получение закрепленного сообщения.* |
40 | | -- [x] `PUT /chats/{chatId}/pin` (`pinMessage`) — *Закрепление сообщения.* |
41 | | -- [x] `DELETE /chats/{chatId}/pin` (`unpinMessage`) — *Открепление сообщения.* |
42 | | -- [x] `GET /chats/{chatId}/members/me` (`getMembership`) — *Получение информации о членстве бота в чате.* |
43 | | -- [x] `DELETE /chats/{chatId}/members/me` (`leaveChat`) — *Выход бота из чата.* |
44 | | -- [x] `GET /chats/{chatId}/members/admins` (`getAdmins`) — *Получение администраторов чата.* |
45 | | -- [ ] `POST /chats/{chatId}/members/admins` (`postAdmins`) — *Назначение администраторов чата.* |
46 | | -- [x] `DELETE /chats/{chatId}/members/admins/{userId}` (`deleteAdmins`) — *Снятие прав администратора.* |
47 | | -- [x] `GET /chats/{chatId}/members` (`getMembers`) — *Получение участников чата.* |
48 | | -- [ ] `POST /chats/{chatId}/members` (`addMembers`) — *Добавление участников в чат.* |
49 | | -- [x] `DELETE /chats/{chatId}/members` (`removeMember`) — *Удаление участника из чата.* |
| 88 | +- [x] `GET /chats` (`getChats`) - *Получение списка всех чатов бота.* |
| 89 | +- [x] `GET /chats/{chatLink}` (`getChatByLink`) - *Получение информации о чате по ссылке.* |
| 90 | +- [x] `GET /chats/{chatId}` (`getChat`) - *Получение информации о чате по ID.* |
| 91 | +- [ ] `PATCH /chats/{chatId}` (`editChat`) - *Редактирование информации о чате.* |
| 92 | +- [x] `DELETE /chats/{chatId}` (`deleteChat`) - *Удаление чата.* |
| 93 | +- [x] `POST /chats/{chatId}/actions` (`sendAction`) - *Отправка действия в чат (например, "печатает...").* |
| 94 | +- [x] `GET /chats/{chatId}/pin` (`getPinnedMessage`) - *Получение закрепленного сообщения.* |
| 95 | +- [x] `PUT /chats/{chatId}/pin` (`pinMessage`) - *Закрепление сообщения.* |
| 96 | +- [x] `DELETE /chats/{chatId}/pin` (`unpinMessage`) - *Открепление сообщения.* |
| 97 | +- [x] `GET /chats/{chatId}/members/me` (`getMembership`) - *Получение информации о членстве бота в чате.* |
| 98 | +- [x] `DELETE /chats/{chatId}/members/me` (`leaveChat`) - *Выход бота из чата.* |
| 99 | +- [x] `GET /chats/{chatId}/members/admins` (`getAdmins`) - *Получение администраторов чата.* |
| 100 | +- [x] `POST /chats/{chatId}/members/admins` (`addAdmins`) - *Назначение администраторов чата.* |
| 101 | +- [x] `DELETE /chats/{chatId}/members/admins/{userId}` (`deleteAdmins`) - *Снятие прав администратора.* |
| 102 | +- [x] `GET /chats/{chatId}/members` (`getMembers`) - *Получение участников чата.* |
| 103 | +- [x] `POST /chats/{chatId}/members` (`addMembers`) - *Добавление участников в чат.* |
| 104 | +- [x] `DELETE /chats/{chatId}/members` (`deleteMember`) - *Удаление участника из чата.* |
50 | 105 |
|
51 | 106 | #### Subscriptions |
52 | 107 |
|
53 | | -- [x] `GET /subscriptions` (`getSubscriptions`) — *Получение списка Webhook-подписок.* |
54 | | -- [x] `POST /subscriptions` (`subscribe`) — *Создание Webhook-подписки.* |
55 | | -- [x] `DELETE /subscriptions` (`unsubscribe`) — *Удаление Webhook-подписки.* |
56 | | -- [x] `GET /updates` (`getUpdates`) — *Получение обновлений через Long-Polling.* |
| 108 | +- [x] `GET /subscriptions` (`getSubscriptions`) - *Получение списка Webhook-подписок.* |
| 109 | +- [x] `POST /subscriptions` (`subscribe`) - *Создание Webhook-подписки.* |
| 110 | +- [x] `DELETE /subscriptions` (`unsubscribe`) - *Удаление Webhook-подписки.* |
| 111 | +- [x] `GET /updates` (`getUpdates`) - *Получение обновлений через Long-Polling.* |
57 | 112 |
|
58 | 113 | #### Upload |
59 | 114 |
|
60 | | -- [x] `POST /uploads` (`getUploadUrl`) — *Получение URL для загрузки файла.* |
| 115 | +- [x] `POST /uploads` (`getUploadUrl`) - *Получение URL для загрузки файла.* |
61 | 116 |
|
62 | 117 | #### Messages |
63 | 118 |
|
64 | | -- [x] `GET /messages` (`getMessages`) — *Получение списка сообщений из чата.* |
65 | | -- [x] `POST /messages` (`sendMessage`) — *Отправка сообщения.* |
66 | | -- [ ] `PUT /messages` (`editMessage`) — *Редактирование сообщения.* |
67 | | -- [x] `DELETE /messages` (`deleteMessage`) — *Удаление сообщения.* |
68 | | -- [x] `GET /messages/{messageId}` (`getMessageById`) — *Получение сообщения по ID.* |
69 | | -- [ ] `GET /videos/{videoToken}` (`getVideoAttachmentDetails`) — *Получение детальной информации о видео.* |
70 | | -- [ ] `POST /answers` (`answerOnCallback`) — *Ответ на нажатие callback-кнопки.* |
| 119 | +- [x] `GET /messages` (`getMessages`) - *Получение списка сообщений из чата.* |
| 120 | +- [x] `POST /messages` (`sendMessage`) - *Отправка сообщения.* |
| 121 | +- [x] `PUT /messages` (`editMessage`) - *Редактирование сообщения.* |
| 122 | +- [x] `DELETE /messages` (`deleteMessage`) - *Удаление сообщения.* |
| 123 | +- [x] `GET /messages/{messageId}` (`getMessageById`) - *Получение сообщения по ID.* |
| 124 | +- [ ] `GET /videos/{videoToken}` (`getVideoAttachmentDetails`) - *Получение детальной информации о видео.* |
| 125 | +- [x] `POST /answers` (`answerOnCallback`) - *Ответ на нажатие callback-кнопки.* |
71 | 126 |
|
72 | 127 | ## Лицензия |
73 | 128 |
|
|
0 commit comments