{"id":13340628,"url":"https://github.com/Danil005/php-vk-bot","last_synced_at":"2025-03-11T18:31:34.996Z","repository":{"id":56962052,"uuid":"169561844","full_name":"Danil005/php-vk-bot","owner":"Danil005","description":"PHP-VK-BOT SDK","archived":false,"fork":false,"pushed_at":"2019-02-08T14:58:13.000Z","size":111,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2024-11-15T22:51:31.410Z","etag":null,"topics":["bots","php","php7","vk","vkbot"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Danil005.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-02-07T11:34:11.000Z","updated_at":"2022-07-26T06:42:28.000Z","dependencies_parsed_at":"2022-08-21T09:20:51.058Z","dependency_job_id":null,"html_url":"https://github.com/Danil005/php-vk-bot","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Danil005%2Fphp-vk-bot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Danil005%2Fphp-vk-bot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Danil005%2Fphp-vk-bot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Danil005%2Fphp-vk-bot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Danil005","download_url":"https://codeload.github.com/Danil005/php-vk-bot/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243090406,"owners_count":20234798,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bots","php","php7","vk","vkbot"],"created_at":"2024-07-29T19:23:37.737Z","updated_at":"2025-03-11T18:31:34.400Z","avatar_url":"https://github.com/Danil005.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n\n\n\n#  PHP-VK-BOT\n\n[![Build Status](https://travis-ci.org/Danil005/php-vk-bot.svg?branch=master)](https://travis-ci.org/Danil005/php-vk-bot)\n\nБиблиотека для работы с VK-ботами.\nПоддерживается работа в беседах.\n\n___\n\n##  Содержание\n\n1. [TODO](#todo)\n 2. [Установка](#%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0)\n 3. [Обработка команд](#3-обработка-команд)\n    + [Базовые опции](#31-базовые-опции)\n      + [Вызов команды при помощи метода](#311-вызов-команды-при-помощи-метода)\n      + [Игнорирование вызова команды при помощи метода](#312-игнорирование-вызова-команды-при-помощи-метода)\n    + [Расширенные опции](#32-расширенные-опции)\n      + [Вариативность вызова команды](#321-вариативность-вызова-команды)\n      + [Варианты реагирования бота на сообщения](#322-варианты-реагирования-бота-на-сообщения)\n        - [Похоже на](#3221-похоже-на) \n        - [Начинается с](#3222-начинается-с)\n        - [Заканчивается на](#3223-заканчивается-на)\n        - [Содержит](#3224-содержит)\n        - [Дополнение](#3225-дополнение)\n      + [Исполнение нескольких методов](#323-исполнение-нескольких-методов)\n4. [Методы](#4-методы)\n    + [attachments (Вложения)](#41--attachmentsarraystring-attachments-arraystring)\n    + [sendMessage (Отправить сообщение)](#42-sendmessagearraystring-message-int-peerid--null-void) \n    + [sendPhoto (Отправить фотографию)](#43-sendphotoarrraystring-photos-int-peerid--nullvoid)\n    + [sendVideo (Отправить видео)](#44-sendvideoarrraystring-videos-int-peerid--nullvoid)\n    + [sendDoc (Отправить документ)](#45-senddocarrraystring-docs-int-peerid--nullvoid)\n    + [sendAudio (Отправить аудиозапись)](#46-sendaudioarrraystring-audio-int-peerid--nullvoid)\n    + [sendWall (Отправить запись со стены)](#47-sendwallarrraystring-walls-int-peerid--nullvoid)\n    + [sendPoll (Отправить опрос)](#48-sendpollarrraystring-polls-int-peerid--nullvoid)\n    + [sendMarket (Отправить товар)](#49-sendmarketarrraystring-items-int-peerid--nullvoid)\n\n___\n## TODO\n\n|Дата|Описание релиза |Состояние \n|:--:|--|--|\n| 7.02.2019 |Возможность отправлять сообщения.  |**done**\n| 7.02.2019 |Обработка команд от пользователей как в беседе так и в личных сообщениях.  |**done**\n| 7.02.2019 |Обработка событий. (Покинул беседу, присоединился и т.д.)  |**done**\n\n## Установка\n\n\n\u003ecomposer require danil005/php-vk-bot:dev-master\n\n\n## 3. Обработка команд\n\n### 3.1. Базовые опции\n\n#### 3.1.1. Вызов команды при помощи метода\n\nДля того, чтобы обработать команды, вам необходимо зайти в папку traits и открыть файл **CommantList.php**.  Создание каждого метода - это и есть команда. Также необходимо создавать методы только строчными буквами.\n\n```php\ntrait CommandList  \n{  \n\tprotected function hello()  \n\t{  \n\t\t$this-\u003esendMessage('Hello!');  \n\t}\n}\n ```\n \n Теперь, если написать \"hello\" в чат, бот вам ответит: \"Hello!\".\n#### 3.1.2. Игнорирование вызова команды при помощи метода\n\nЕсли не хотите, чтобы метод вызывался при вводе ключевого слова, добавьте нижнее подчеркивание в начале метода (**function_hello**):\n\n ```php\ntrait CommandList  \n{  \n    protected function _hello()  \n    {  \n         $this-\u003esendMessage('Hello!');  \n\t \n    }\n}\n ```\n \n Тогда при вызове _hello или hello, метод выполняться не будет.\n \n#### 3.1.3. Реакция не предложения или другие слова\n \nЕсли хотите сделать реакцию на предложения, то создайте метод **cList()** в CommandList.\n\n```php\nprotected function cList()  \n{  \n    return [  \n        [ //Команда #1\n            'text'=\u003e'text message',  \n            'method' =\u003e '_hello'  //Обязательно использовать _.\n        ],\n        [...], //Команда #2\n        ...  \n    ];\n}\n ```\n \n**Обязательно создавать методы с использование нижнего подчеркивания, иначе этот метод можно будет вызывать.**\n\n Массив состоящий из вложенного массива создает команду.\n \n|Ключ|Значение  |\n|--|--|\n|text|Сообщение на которое будет реагировать бот.|\n|method|Метод из CommandList. **Обязательно использовать: _**\n\n### 3.2. Расширенные опции\n\n#### 3.2.1. Вариативность вызова команды\n\nЕсли указать ключ **text** как массив, то бот будет реагировать на несколько фраз.\n\n```php\n'text'=\u003e['text message 1', 'text message 2']\n```\n\n#### 3.2.2. Варианты реагирования бота на сообщения.\n\nВы можете вызывать команду разными вариантами:\n\n - Похоже на\n - Начинается с \n - Заканчивается на\n - Содержит\n \n##### 3.2.2.1. Похоже на\n\nЧтобы использовать этот вариант, добавьте **|** в начале строки.\n\nВы можете настроить вероятность совпадения в диапазоне [0-100]. \n\nУстановить эту настройку можно в **config.php** под c ключом: **similar_percent**.\n\nПо умолчанию: 75%.\n\n```php\n'text'=\u003e'|привет всем',\n```\n\n##### 3.2.2.2. Начинается с\n\nЧтобы использовать этот вариант, добавьте **[|** в начале строки.\n\n```php\n'text'=\u003e'[|привет всем',\n```\n\n##### 3.2.2.3. Заканчивается на\n\nЧтобы использовать этот вариант, добавьте **|]** в конец строки.\n\n```php\n'text'=\u003e'привет всем|]',\n```\n\n##### 3.2.2.4. Содержит\n\nЧтобы использовать этот вариант, выделите фразу в фигурных скобках **{ фраза }**.\n\n```php\n'text'=\u003e'{привет всем}',\n```\n\n##### 3.2.2.5. Дополнение\n\nДанный способ работает и с использованием множества вариантов вызова.\n\n```php\n'text'=\u003e['[|привет', '{ку}', 'хай|]', '|здравствуйте']\n```\n\n#### 3.2.3. Исполнение нескольких методов\n\nЕсли указать ключ **method** как массив, то бот будет выполнять указанные методы по очереди.\n\n```php\n'method'=\u003e['_hello', '_goodbye']\n```\n\n## 4. Методы\n\n### 4.1.  attachments(array|string $attachments): array|string\n\nДобавить вложения для сообщения. Указывать **ДО** вызова метода sendMessage()\n\n|Аргумент|Тип данных|Описание|По умолчанию|\n|--|--|--|--|\n|$attachments|array\\|string|Ссылка на медиавложения или массив|обязательно\n\nПример:\n\n```php\nprotected function _hello()  \n{  \n  $this-\u003eattachments('photo-100172_166443618');\n  //$this-\u003eattachments(['photo-100172_166443618', 'photo-124172_166443618'])\n  $this-\u003esendMessage(['Hello!', 'HI!']);  \n}\n```\n\n**Если указать два и более подряд идущих методов attachments, то будет использоваться последний.**\n\nТипы медиавложения:\n\n|Тип|Описание|\n|--|--|\n|photo|Фотографии|\n|video|Видео|\n|audio|Аудио|\n|doc|Документ|\n|wall|Запись на стене|\n|poll|Опрос|\n|market|Товар|\n\nПодробнее на официальном сайте [VK.COM (messages.send)](https://vk.com/dev/messages.send).\n\n___\n### 4.2. sendMessage(array|string $message, int $peerId = null): void\n\nОтправка сообщения пользователю/в беседу.\n\n\n|Аргумент|Тип данных|Описание|По умолчанию|\n|--|--|--|--|\n|$message|array\\|string|Сообщение или массив сообщений, которые будут выбраны генератором случайных чисел.|обязательно\n|$perrId|int|ID-пользователя/чата.|null \n\nПример:\n\n```php\n$this-\u003esendMessage(['Hi', 'Hello!']);\n//Result: Hi\n```\n\n___\n### 4.3. sendPhoto(arrray|string $photos, int $peerId = null):void\n\nОтправить фотографию, не используя метод attachments. Указывайте **\u003cowner_id\u003e_\u003cmedia_id\u003e**.\n\nТип фотографию(и) будет по умолчанию photo. То есть photo-**100172_166443618**, то вам нужно вставить лишь выделенную часть.\n\n|Аргумент|Тип данных|Описание|По умолчанию|\n|--|--|--|--|\n|$photos|array\\|string|Ссылка на фотографию или массив|обязательно\n\n\nПример:\n\n```php\n$this-\u003esendPhoto('175343153_456239018');\n```\n\n___\n### 4.4. sendVideo(arrray|string $videos, int $peerId = null):void\n\nОтправить видео, не используя метод attachments. По тому же правилу, что и sendPhoto.\n\n|Аргумент|Тип данных|Описание|По умолчанию|\n|--|--|--|--|\n|$videos|array\\|string|Ссылка на видео или массив|обязательно\n\n\nПример:\n\n```php\n$this-\u003esendVideo('175343153_456239018');\n```\n\n___\n### 4.5. sendDoc(arrray|string $docs, int $peerId = null):void\n\nОтправить документ(ы), не используя метод attachments. По тому же правилу, что и sendPhoto.\n\n|Аргумент|Тип данных|Описание|По умолчанию|\n|--|--|--|--|\n|$docs|array\\|string|Ссылка на документ или массив|обязательно\n\n\nПример:\n\n```php\n$this-\u003esendDoc('175343153_456239018');\n```\n\n\n___\n### 4.6. sendAudio(arrray|string $audio, int $peerId = null):void\n\nОтправить аудио, не используя метод attachments. По тому же правилу, что и sendPhoto.\n\n|Аргумент|Тип данных|Описание|По умолчанию|\n|--|--|--|--|\n|$audio|array\\|string|Ссылка на аудио или массив|обязательно\n\n\nПример:\n\n```php\n$this-\u003esendAudio('175343153_456239018');\n```\n\n\n___\n### 4.7. sendWall(arrray|string $walls, int $peerId = null):void\n\nОтправить запись(и) со стен(ы), не используя метод attachments. По тому же правилу, что и sendPhoto.\n\n|Аргумент|Тип данных|Описание|По умолчанию|\n|--|--|--|--|\n|$walls|array\\|string|Ссылка на запись со стены или массив|обязательно\n\n\nПример:\n\n```php\n$this-\u003esendWall('175343153_456239018');\n```\n\n___\n### 4.8. sendPoll(arrray|string $polls, int $peerId = null):void\n\nОтправить опрос(ы), не используя метод attachments. По тому же правилу, что и sendPhoto.\n\n|Аргумент|Тип данных|Описание|По умолчанию|\n|--|--|--|--|\n|$polls|array\\|string|Ссылка опрос или массив|обязательно\n\n\nПример:\n\n```php\n$this-\u003esendPoll('175343153_456239018');\n```\n\n___\n### 4.9. sendMarket(arrray|string $items, int $peerId = null):void\n\nОтправить товар(ы), не используя метод attachments. По тому же правилу, что и sendPhoto.\n\n|Аргумент|Тип данных|Описание|По умолчанию|\n|--|--|--|--|\n|$items|array\\|string|Ссылка товар или массив|обязательно\n\n\nПример:\n\n```php\n$this-\u003esendMarket('175343153_456239018');\n```\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FDanil005%2Fphp-vk-bot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FDanil005%2Fphp-vk-bot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FDanil005%2Fphp-vk-bot/lists"}