Для настройки проверки корректности отправки документа от пользователя в телеграм боте с использованием PHP (Telegraf/Laravel), вы можете использовать следующий код:
1. Создайте middleware для проверки корректности отправляемого документа:
```php
// app/Http/Middleware/CheckDocument.php
namespace App\Http\Middleware;
use Closure;
class CheckDocument
{
public function handle($request, Closure $next)
{
if ($request->hasDocument() && $request->documentType() == 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet') {
return $next($request);
}
return response()->json(['error' => 'Invalid document type'], 400);
}
}
```
2. Зарегистрируйте middleware в вашем приложении Laravel:
```php
// app/Http/Kernel.php
protected $routeMiddleware = [
...
'checkDocument' => \App\Http\Middleware\CheckDocument::class,
];
```
3. Используйте middleware в вашем роуте для проверки отправляемого документа:
```php
Route::post('/handleDocument', 'DocumentController@handle')->middleware('checkDocument');
```
Теперь, когда пользователь отправляет документ через телеграм бота, он будет проверен на корректность типа файла перед выполнением соответствующего действия.
Чтобы создать функцию в хендлере для отправки сообщения с прикреплением документа типа xlsx, вы можете использовать следующий код:
```php
// app/Http/Controllers/DocumentController.php
namespace App\Http\Controllers;
use Telegram\Bot\Laravel\Facades\Telegram;
class DocumentController extends Controller
{
public function handle()
{
$chatId = $request->input('chat_id');
$file = $request->file('document');
Telegram::sendDocument([
'chat_id' => $chatId,
'document' => $file,
'caption' => 'Here is the XLSX document you requested',
]);
return response()->json(['message' => 'Document sent successfully'], 200);
}
}
```
Обратите внимание, что в данном примере предполагается, что вы используете Telegraf и Laravel для работы с телеграм ботом через webhook. Вам также может потребоваться настроить обработку файла xlsx и изменение его перед отправкой в соответствии с вашими потребностями.