In laravel 8 app with laravel-notification-channels/telegram 2.1 I send a notification selecting an image or video, which are stored on 'local' disk with spatie/laravel-medialibrary : "^9.12.4" and problem is that I upload ok image, but can not upload video file with notification app/Modules/News/Notifications/NewsPublishedTelegramNotification.php :
<?php
namespace App\Modules\News\Notifications;
use App\Models\News;
use Illuminate\Bus\Queueable;
use Illuminate\Notifications\Notification;
use NotificationChannels\Telegram\TelegramFile;
class NewsPublishedTelegramNotification extends Notification
{
use Queueable;
private string $telegramChatId;
private News $news;
private array $mediaData = [];
public function __construct(string $telegramChatId, News $news, array $mediaData)
{
$this->telegramChatId = $telegramChatId;
$this->news = $news;
$this->mediaData = $mediaData;
}
public function via($notifiable): array
{
return ["telegram"];
}
public function toTelegram($notifiable): TelegramFile
{
$content = ' Content text...;';
if (\Str::contains($this->mediaData['mime_type'], 'video')) {
// The video is not uploded
return TelegramFile::create()
->to($this->telegramChatId)
->content('Sample *video* notification!')
// $this->mediaData['url'] has value like http://127.0.0.1:8000/storage/180/sample.avi
->video($this->mediaData['url']);
// As now I work under ny home app I also try absolute valid path - but the same error
// ->video('https://my-remote-server.com/storage/136/sample.avi');
} else {
// image uploaded ok and is attached in telegram message
return TelegramFile::create()
->to($this->telegramChatId)
->content($content)
->file($this->mediaData['path'], 'photo');
}
}
public function toArray($notifiable): array
{
return [
//
];
}
}
But I got an error running on my home ubuntu 20 http://127.0.0.1:8000/ hosting :
[2023-07-20 12:01:52] local.ERROR: GuzzleHttp\Exception\ClientException: Client error: `POST https://api.telegram.org/bot5906918771:NNNNNNNNNNNN/sendVideo` resulted in a `400 Bad Request` response:
{"ok":false,"error_code":400,"description":"Bad Request: wrong file identifier/HTTP URL specified"}
in /mnt/_work_sdb8/projectpath/vendor/guzzlehttp/guzzle/src/Exception/RequestException.php:113
Stack trace:
#0 /mnt/_work_sdb8/projectpath/vendor/guzzlehttp/guzzle/src/Middleware.php(72): GuzzleHttp\Exception\RequestException::create()
#1 /mnt/_work_sdb8/projectpath/vendor/guzzlehttp/promises/src/Promise.php(209): GuzzleHttp\Middleware::GuzzleHttp\{closure}()
#2 /mnt/_work_sdb8/projectpath/vendor/guzzlehttp/promises/src/Promise.php(158): GuzzleHttp\Promise\Promise::callHandler()
#3 /mnt/_work_sdb8/projectpath/vendor/guzzlehttp/promises/src/TaskQueue.php(52): GuzzleHttp\Promise\Promise::GuzzleHttp\Promise\{closure}()
#4 /mnt/_work_sdb8/projectpath/vendor/guzzlehttp/promises/src/Promise.php(251): GuzzleHttp\Promise\TaskQueue->run()
#5 /mnt/_work_sdb8/projectpath/vendor/guzzlehttp/promises/src/Promise.php(227): GuzzleHttp\Promise\Promise->invokeWaitFn()
#6 /mnt/_work_sdb8/projectpath/vendor/guzzlehttp/promises/src/Promise.php(272): GuzzleHttp\Promise\Promise->waitIfPending()
#7 /mnt/_work_sdb8/projectpath/vendor/guzzlehttp/promises/src/Promise.php(229): GuzzleHttp\Promise\Promise->invokeWaitList()
#8 /mnt/_work_sdb8/projectpath/vendor/guzzlehttp/promises/src/Promise.php(69): GuzzleHttp\Promise\Promise->waitIfPending()
#9 /mnt/_work_sdb8/projectpath/vendor/guzzlehttp/guzzle/src/Client.php(189): GuzzleHttp\Promise\Promise->wait()
#10 /mnt/_work_sdb8/projectpath/vendor/guzzlehttp/guzzle/src/ClientTrait.php(95): GuzzleHttp\Client->request()
#11 /mnt/_work_sdb8/projectpath/vendor/laravel-notification-channels/telegram/src/Telegram.php(182): GuzzleHttp\Client->post()
#12 /mnt/_work_sdb8/projectpath/vendor/laravel-notification-channels/telegram/src/Telegram.php(116): NotificationChannels\Telegram\Telegram->sendRequest()
#13 /mnt/_work_sdb8/projectpath/vendor/laravel-notification-channels/telegram/src/TelegramChannel.php(105): NotificationChannels\Telegram\Telegram->sendFile()
#14 /mnt/_work_sdb8/projectpath/vendor/laravel/framework/src/Illuminate/Notifications/NotificationSender.php(148): NotificationChannels\Telegram\TelegramChannel->send()
#15 /mnt/_work_sdb8/projectpath/vendor/laravel/framework/src/Illuminate/Notifications/NotificationSender.php(106): Illuminate\Notifications\NotificationSender->sendToNotifiable()
#16 /mnt/_work_sdb8/projectpath/vendor/laravel/framework/src/Illuminate/Support/Traits/Localizable.php(19): Illuminate\Notifications\NotificationSender->Illuminate\Notifications\{closure}()
#17 /mnt/_work_sdb8/projectpath/vendor/laravel/framework/src/Illuminate/Notifications/NotificationSender.php(109): Illuminate\Notifications\NotificationSender->withLocale()
#18 /mnt/_work_sdb8/projectpath/vendor/laravel/framework/src/Illuminate/Notifications/NotificationSender.php(79): Illuminate\Notifications\NotificationSender->sendNow()
#19 /mnt/_work_sdb8/projectpath/vendor/laravel/framework/src/Illuminate/Notifications/ChannelManager.php(39): Illuminate\Notifications\NotificationSender->send()
#20 /mnt/_work_sdb8/projectpath/vendor/laravel/framework/src/Illuminate/Notifications/AnonymousNotifiable.php(45): Illuminate\Notifications\ChannelManager->send()
#21 /mnt/_work_sdb8/projectpath/app/Modules/News/Listeners/NewsPublishedListener.php(80): Illuminate\Notifications\AnonymousNotifiable->notify()
#22 /mnt/_work_sdb8/projectpath/vendor/laravel/framework/src/Illuminate/Events/Dispatcher.php(424): App\Modules\News\Listeners\NewsPublishedListener->handle()
#23 /mnt/_work_sdb8/projectpath/vendor/laravel/framework/src/Illuminate/Events/Dispatcher.php(249): Illuminate\Events\Dispatcher->Illuminate\Events\{closure}()
#24 /mnt/_work_sdb8/projectpath/vendor/laravel/framework/src/Illuminate/Foundation/helpers.php(450): Illuminate\Events\Dispatcher->dispatch()
#25 /mnt/_work_sdb8/projectpath/vendor/laravel/framework/src/Illuminate/Foundation/Events/Dispatchable.php(14): event()
#26 /mnt/_work_sdb8/projectpath/app/Http/Controllers/Admin/NewsController.php(209): App\Modules\News\Events\NewsPublishedEvent::dispatch()
#27 /mnt/_work_sdb8/projectpath/vendor/laravel/framework/src/Illuminate/Routing/Controller.php(54): App\Http\Controllers\Admin\NewsController->update()
#28 /mnt/_work_sdb8/projectpath/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(45): Illuminate\Routing\Controller->callAction()
#29 /mnt/_work_sdb8/projectpath/vendor/laravel/framework/src/Illuminate/Routing/Route.php(262): Illuminate\Routing\ControllerDispatcher->dispatch()
#30 /mnt/_work_sdb8/projectpath/vendor/laravel/framework/src/Illuminate/Routing/Route.php(205): Illuminate\Routing\Route->runController()
#31 /mnt/_work_sdb8/projectpath/vendor/laravel/framework/src/Illuminate/Routing/Router.php(721): Illuminate\Routing\Route->run()
#32 /mnt/_work_sdb8/projectpath/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(128): Illuminate\Routing\Router->Illuminate\Routing\{closure}()
#33 /mnt/_work_sdb8/projectpath/vendor/laravel/framework/src/Illuminate/Auth/Middleware/Authorize.php(45): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#34 /mnt/_work_sdb8/projectpath/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\Auth\Middleware\Authorize->handle()
#35 /mnt/_work_sdb8/projectpath/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php(50): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#36 /mnt/_work_sdb8/projectpath/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\Routing\Middleware\SubstituteBindings->handle()
#37 /mnt/_work_sdb8/projectpath/vendor/laravel/framework/src/Illuminate/Auth/Middleware/Authenticate.php(44): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#38 /mnt/_work_sdb8/projectpath/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\Auth\Middleware\Authenticate->handle()
#39 /mnt/_work_sdb8/projectpath/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php(78): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#40 /mnt/_work_sdb8/projectpath/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\Foundation\Http\Middleware\VerifyCsrfToken->handle()
#41 /mnt/_work_sdb8/projectpath/vendor/laravel/framework/src/Illuminate/View/Middleware/ShareErrorsFromSession.php(49): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#42 /mnt/_work_sdb8/projectpath/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\View\Middleware\ShareErrorsFromSession->handle()
#43 /mnt/_work_sdb8/projectpath/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(121): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#44 /mnt/_work_sdb8/projectpath/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(64): Illuminate\Session\Middleware\StartSession->handleStatefulRequest()
#45 /mnt/_work_sdb8/projectpath/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\Session\Middleware\StartSession->handle()
#46 /mnt/_work_sdb8/projectpath/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php(37): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#47 /mnt/_work_sdb8/projectpath/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse->handle()
#48 /mnt/_work_sdb8/projectpath/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php(67): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#49 /mnt/_work_sdb8/projectpath/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\Cookie\Middleware\EncryptCookies->handle()
#50 /mnt/_work_sdb8/projectpath/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(103): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#51 /mnt/_work_sdb8/projectpath/vendor/laravel/framework/src/Illuminate/Routing/Router.php(723): Illuminate\Pipeline\Pipeline->then()
#52 /mnt/_work_sdb8/projectpath/vendor/laravel/framework/src/Illuminate/Routing/Router.php(698): Illuminate\Routing\Router->runRouteWithinStack()
#53 /mnt/_work_sdb8/projectpath/vendor/laravel/framework/src/Illuminate/Routing/Router.php(662): Illuminate\Routing\Router->runRoute()
#54 /mnt/_work_sdb8/projectpath/vendor/laravel/framework/src/Illuminate/Routing/Router.php(651): Illuminate\Routing\Router->dispatchToRoute()
#55 /mnt/_work_sdb8/projectpath/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(167): Illuminate\Routing\Router->dispatch()
#56 /mnt/_work_sdb8/projectpath/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(128): Illuminate\Foundation\Http\Kernel->Illuminate\Foundation\Http\{closure}()
#57 /mnt/_work_sdb8/projectpath/vendor/barryvdh/laravel-debugbar/src/Middleware/InjectDebugbar.php(66): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#58 /mnt/_work_sdb8/projectpath/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Barryvdh\Debugbar\Middleware\InjectDebugbar->handle()
#59 /mnt/_work_sdb8/projectpath/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#60 /mnt/_work_sdb8/projectpath/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php(31): Illuminate\Foundation\Http\Middleware\TransformsRequest->handle()
#61 /mnt/_work_sdb8/projectpath/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull->handle()
#62 /mnt/_work_sdb8/projectpath/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#63 /mnt/_work_sdb8/projectpath/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php(40): Illuminate\Foundation\Http\Middleware\TransformsRequest->handle()
#64 /mnt/_work_sdb8/projectpath/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\Foundation\Http\Middleware\TrimStrings->handle()
#65 /mnt/_work_sdb8/projectpath/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php(27): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#66 /mnt/_work_sdb8/projectpath/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\Foundation\Http\Middleware\ValidatePostSize->handle()
#67 /mnt/_work_sdb8/projectpath/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(86): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#68 /mnt/_work_sdb8/projectpath/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\Foundation\Http\Middleware\PreventRequestsDuringMaintenance->handle()
#69 /mnt/_work_sdb8/projectpath/vendor/fruitcake/laravel-cors/src/HandleCors.php(38): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#70 /mnt/_work_sdb8/projectpath/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Fruitcake\Cors\HandleCors->handle()
#71 /mnt/_work_sdb8/projectpath/vendor/fideloper/proxy/src/TrustProxies.php(57): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#72 /mnt/_work_sdb8/projectpath/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Fideloper\Proxy\TrustProxies->handle()
#73 /mnt/_work_sdb8/projectpath/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(103): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#74 /mnt/_work_sdb8/projectpath/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(142): Illuminate\Pipeline\Pipeline->then()
#75 /mnt/_work_sdb8/projectpath/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(111): Illuminate\Foundation\Http\Kernel->sendRequestThroughRouter()
#76 /mnt/_work_sdb8/projectpath/public/index.php(53): Illuminate\Foundation\Http\Kernel->handle()
#77 /mnt/_work_sdb8/projectpath/server.php(21): require_once('...')
#78 {main}
It looks like not as I run on my local OS with local host...
How this erro can be fixed ?