42 lines
1.6 KiB
PHP
42 lines
1.6 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Support\Facades\Log;
|
|
|
|
class VkBotController extends Controller
|
|
{
|
|
public function handle(Request $request)
|
|
{
|
|
// Получаем данные от VK в формате массива
|
|
$data = $request->all();
|
|
|
|
// Проверяем тип запроса
|
|
if (! isset($data['type'])) { return response('ok', 200); }
|
|
|
|
// 1. Подтверждение сервера для VK (срабатывает один раз)
|
|
if ($data['type'] === 'confirmation') {
|
|
// Замените ЭТУ_СТРОКУ на код из настроек Callback API в VK
|
|
return response('ЭТУ_СТРОКУ', 200)
|
|
->header('Content-Type', 'text/plain');
|
|
}
|
|
|
|
// 2. Получение новой записи на стене (новости)
|
|
if ($data['type'] === 'wall_post_new') {
|
|
$post = $data['object']; // Здесь вся информация о посте
|
|
|
|
// Временно запишем в лог (storage/logs/laravel.log), чтобы увидеть структуру
|
|
Log::info('Новый пост от VK:', $post);
|
|
|
|
// TODO: Здесь будет код сохранения $post в вашу базу данных
|
|
|
|
// VK требует всегда возвращать строку "ok" на любые события
|
|
return response('ok', 200)
|
|
->header('Content-Type', 'text/plain');
|
|
}
|
|
}
|
|
}
|