Как научить бота отвечать в беседе вк?

112
26 января 2021, 13:00

Есть vk_api, где все функции записаны, и есть обработчик, bot.php В нем прописано:

if ($data->type == 'message_new') {
if ($message == '!расписание') {
        $vk->sendMessage($id, "Привет, вот расписание на сегодня");
        $vk->sendImage($id, __DIR__ . DIRECTORY_SEPARATOR . '/schedule.jpeg');
    }

}

В vk_api.php такой код:

    public function sendMessage($sendID,$message){
    if ($sendID != 0 and $sendID != '0') {
        return $this->request('messages.send',array('message'=>$message, 'peer_id'=>$sendID));
    } else {
        return true;
    }
}

Что нужно написать и как создать функцию, которая скажет боту, что нужно отвечать в чат (беседу вк), а не в личные сообщения (Если в беседе дать доступ к всем сообщениям, бот видит, не читает, но отвечает в ЛС тому, кто ввел команду)

Answer 1

Если у Вас бот работает на CallbackAPI, то у присланного в формате JSON запроса есть запись peer_id - именно в ней указан ID, откуда пришел запрос, в записи from_id - ID пользователя.

if ($data->type == 'message_new') 
{
    $id = $data->object->peer_id;
    if ($message == '!расписание') 
    {
       $vk->sendMessage($id, "Привет, вот расписание на сегодня");
       $vk->sendImage($id, __DIR__ . DIRECTORY_SEPARATOR . '/schedule.jpeg');
    }
 }

Попробуйте так

READ ALSO
Как послать эмейл посредством PHPMailer

Как послать эмейл посредством PHPMailer

Тестовая php-страничкаВыдает ошибку: "Uncaught Error: Call to undefined method PHPMailer\PHPMailer\PHPMailer::SMTPAuth() in

103
Можно ли сократить код?

Можно ли сократить код?

Меня интересует можно ли сократить повторяющуюся проверку условий:

130
laravel 5.8 и morphMany

laravel 5.8 и morphMany

В документации описано как должны выглядить модели как из них получать, а вот не показанно как их записывать, я пробовал через attach но позже...

114