Hur laddar jag upp video på YouTube i Laravel-applikationen
Nyligen frågade en av våra läsare hur man laddar upp en video på YouTube från Laravel-applikationen. De ville bygga ett system som kan ladda upp YouTube-videor från Laravel-applikationen. Om du gör det behöver de inte ge sitt YouTube-konto åtkomst till de teammedlemmar som hanterar videorna för YouTube-kontot.
Tidigare har jag skrivit en artikel som förklarar hur du laddar upp video på YouTube med YouTube API i PHP. I den här artikeln kommer vi att se hur du laddar upp en video på YouTube från Laravel-applikationen.
Registrera en ansökan och få referenser
För att komma igång måste du ha ett Google-konto. På Google-kontot måste du registrera din ansökan och hämta API-nycklarna.
Nedan följer stegen för att registrera ett program och ta tag i API-nycklarna.
- Gå till Googles utvecklarkonsol https://console.developers.google.com.
- Skapa ett nytt projekt. Du kan också välja befintligt projekt.
- Skriv ett namn på ditt projekt. Google Console skapar unikt projekt-ID för dig.
- När du skapar ett projekt visas det överst i vänster sidofält.
- Klicka på Bibliotek från den vänstra menyn. Du kommer att se en lista över Googles API: er. Aktivera YouTube Data API.
- Klicka sedan på referenser från vänster meny. Välj Oauth-klient-id under Skapa referenser. Välj alternativknappen för webbapplikation.
- Ge namnet. Under Auktoriserat JavaScript-ursprung anger du din domän-URL. I de auktoriserade omdirigerings-URI: erna lägg till länken till omdirigerings-URL: en som http: // localhost: 8000 / youtube / callback. Jag skickar min lokala webbadress här. Du bör justera denna webbadress med din domän.
- Klicka slutligen på knappen Skapa. Du får ett klient-ID och klienthemlighet i popup-fönstret. Kopiera dessa detaljer. Vi kommer att kräva det snart.
Installera och konfigurera GitHub Library
När du har skapat applikationen är nästa sak du behöver göra att installera joedawson / youtube- biblioteket. För installation av detta bibliotek öppnar du terminalen i din projektkatalog och kör kommandot:
composer require dawson/youtube
När du har installerat biblioteket bör du registrera tjänsteleverantören och alias i config/app.php
filen.
config / app.php
....
'providers' => [
...
DawsonYoutubeYoutubeServiceProvider::class,
],
....
'aliases' => [
...
'Youtube' => DawsonYoutubeFacadesYoutube::class,
],
Därefter publicerar du youtube.php
och migreringar med kommandot nedan:
php artisan vendor:publish --provider="DawsonYoutubeYoutubeServiceProvider"
Ovanstående kommando flyttar filen youtube.php
under mappen ‘config’ och migreringsfilen under mappen ‘database / migrations’. Nu måste du köra migreringskommandot som skapar en youtube_access_tokens
tabelltabell i databasen.
php artisan migrate
Den här tabellen lagrar åtkomsttoken och uppdaterar token efter godkännande av YouTube-kontot. Access_token behövs när du interagerar med YouTube API. Åtkomsttoken fungerar som en identifierare för ditt YouTube-konto. Åtkomsttoken har en kort livstid så för att få den nya åtkomsttoken använder detta bibliotek en uppdateringstoken. Du behöver inte oroa dig för att infoga dessa tokens i en tabell. Biblioteket gör det i bakgrunden.
Vi har kopierat API-referenserna som måste placeras i Laravel-applikationen. Öppna .env
filen och lägg till ditt klient-id och klienthemlighet enligt följande:
GOOGLE_CLIENT_ID=
GOOGLE_CLIENT_SECRET=
Om du gör några ändringar i miljöfilen bör du rensa konfigurationen med kommandot:
php artisan config:clear
Auktorisering av Google-konto
Av säkerhetsskäl är rutterna för att auktorisera YouTube-kontot med din Laravel-applikation inaktiverade som standard. Du måste aktivera det från din config/youtube.php
. Öppna config/youtube.php
och aktivera det genom att bara ersätta falskt värde med true.
...
'enabled' => true, //set it to 'false' after authorization
Du kan nu auktorisera ditt konto med webbadressen YOUR_DOMAIN_URL / youtube / auth i webbläsaren. Det omdirigeras till Googles inloggningssida för att autentisera ditt konto. Slutför processen. Vid framgångsrik autentisering omdirigerar du tillbaka till din Laravel-applikation. Kontrollera youtube_access_tokens
tabellen och du bör se tokens infogade i kolumnen ‘access_token’. Detta är en engångsprocess. Biblioteket genererar automatiskt access_token i bakgrunden även om det har upphört att gälla. Användaren behöver inte auktorisera sitt konto igen.
Ladda upp video på YouTube-konto i Laravel-applikationen
I det här skedet är du redo med åtkomsttoken. Skapa nu ett formulär för att bläddra i videofilen och skicka den till YouTube. Låt oss skapa en kontroller genom att köra kommandot nedan.
php artisan make:controller VideoController --resource
Definiera rutter för VideoController
enligt följande.
rutter / web.php
<?php
...
Route::resource('video', 'VideoController');
Skapa en vy resources/views/video.blade.php
och lägg till koden nedan i den.
<form action="{{ url('video') }}" method="post" enctype="multipart/form-data">
<p><input type="text" name="title" placeholder="Enter Video Title" /></p>
<p><textarea name="description" cols="30" rows="10" placeholder="Video description"></textarea></p>
<p><input type="file" name="video" /></p>
<button type="submit" class="btn btn-default">Submit</button>
{{ csrf_field() }}
</form>
Ring den här vyfilen från index
metoden för vår controller.
public function index()
{
return view('video');
}
Nu när du besöker YOUR_DOMAIN_URL / video ser du ett formulär som innehåller filinmatning, titel, beskrivning och skicka-knapp.
För att ringa YouTube API lägg till en YouTube-klass i en controller. Och i store
metoden skriver du koden för att ladda upp en video på YouTube enligt följande.
<?php
namespace AppHttpControllers;
use IlluminateHttpRequest;
use Youtube;
class VideoController extends Controller
{
....
public function store(Request $request)
{
$video = Youtube::upload($request->file('video')->getPathName(), [
'title' => $request->input('title'),
'description' => $request->input('description')
]);
return "Video uploaded successfully. Video ID is ". $video->getVideoId();
}
}
Här skickar vi en videofil, titel och beskrivning från vårt formulär. Den här koden laddar bara upp din video på YouTube och skriver ut YouTube-video-id.
Jag hoppas att du förstår hur du laddar upp en video på YouTube i Laravel-applikationen. Användaren kan också uppdatera och ta bort videoklippen med koden från biblioteket. Du kan läsa mer om det i deras dokumentation.
relaterade artiklar
- PayPal Payments Pro-integration i Laravel
- Hur man skapar en blogg med Laravel
- Hur man laddar upp och beskär bilder i Laravel