Come caricare video su YouTube nell’applicazione Laravel
Recentemente uno dei nostri lettori ha chiesto come caricare un video su YouTube dall’applicazione Laravel. Volevano creare un sistema in grado di caricare i video di YouTube dall’interno dell’applicazione Laravel. In questo modo, non è necessario concedere l’accesso al proprio account YouTube ai membri del team che gestiscono i video per l’account YouTube.
In passato, ho scritto un articolo che spiega come caricare video su YouTube utilizzando l’API di YouTube in PHP. In questo articolo vedremo come caricare un video su YouTube dall’applicazione Laravel.
Registra un’applicazione e ottieni le credenziali
Per iniziare, devi disporre di un account Google. Sull’account Google, devi registrare la tua applicazione e ottenere le chiavi API.
Di seguito sono riportati i passaggi per registrare un’applicazione e acquisire le chiavi API.
- Vai alla Console per gli sviluppatori di Google https://console.developers.google.com.
- Crea un nuovo progetto. Puoi anche selezionare un progetto esistente.
- Digita un nome per il tuo progetto. Google Console creerà per te un ID progetto univoco.
- Dopo aver creato un progetto, apparirà nella parte superiore della barra laterale sinistra.
- Fare clic su Libreria dal menu a sinistra. Vedrai un elenco di API di Google. Abilita l’API dei dati di YouTube.
- Successivamente, dal menu di sinistra, fai clic su Credenziali. Seleziona ID client Oauth in Crea credenziali. Scegli il pulsante di opzione per l’applicazione Web.
- Dai il nome. In Origini JavaScript autorizzate inserisci l’URL del tuo dominio. Negli URI di reindirizzamento autorizzati aggiungi il link dell’URL di reindirizzamento come http://localhost:8000/youtube/callback. Sto passando il mio URL locale qui. Dovresti modificare questo URL con il tuo dominio.
- Infine, fai clic sul pulsante Crea. Riceverai un ID cliente e un segreto cliente nel pop-up. Copia questi dettagli. Lo richiederemo presto.
Installa e configura la libreria GitHub
Una volta creata l’applicazione, la prossima cosa da fare è installare joedawson/youtube library. Per l’installazione di questa libreria, apri il terminale nella directory principale del tuo progetto ed esegui il comando:
composer require dawson/youtube
Dopo aver installato la libreria, è necessario registrare il provider di servizi e gli alias nel config/app.php
file.
config/app.php
....
'providers' => [
...
DawsonYoutubeYoutubeServiceProvider::class,
],
....
'aliases' => [
...
'Youtube' => DawsonYoutubeFacadesYoutube::class,
],
Quindi, pubblica le youtube.php
migrazioni e utilizzando il comando seguente:
php artisan vendor:publish --provider="DawsonYoutubeYoutubeServiceProvider"
Il comando precedente sposta il file youtube.php
nella cartella "config" e il file di migrazione nella cartella "database/migrazioni". Ora, devi eseguire il comando di migrazione che creerà una tabella youtube_access_tokens
tabella nel database.
php artisan migrate
Questa tabella memorizzerà il token di accesso e aggiornerà il token dopo aver autorizzato l’account YouTube. Il token di accesso è necessario quando interagisci con l’API di YouTube. Il token di accesso funge da identificatore per il tuo account YouTube. Il token di accesso ha una durata breve, quindi per ottenere il nuovo token di accesso questa libreria utilizza un token di aggiornamento. Non devi preoccuparti di inserire questi token in una tabella. La libreria lo farà in background.
Abbiamo copiato le credenziali API che devono essere inserite nell’applicazione Laravel. Apri il .env
file e aggiungi l’ID client e il segreto client come segue:
GOOGLE_CLIENT_ID=
GOOGLE_CLIENT_SECRET=
Se stai apportando modifiche al file di ambiente dovresti cancellare la configurazione usando il comando:
php artisan config:clear
Autorizzazione dell’account Google
Per motivi di sicurezza, i percorsi per autorizzare l’account YouTube con la tua applicazione Laravel sono disabilitati per impostazione predefinita. Dovrai abilitarlo dal tuo config/youtube.php
. Apri config/youtube.php
e abilitalo semplicemente sostituendo il valore falso con vero.
...
'enabled' => true, //set it to 'false' after authorization
Ora puoi autorizzare il tuo account utilizzando l’URL YOUR_DOMAIN_URL/youtube/auth nel browser. Verrà reindirizzato alla pagina di accesso di Google per autenticare il tuo account. Completa il processo. In caso di autenticazione riuscita, verrai reindirizzato alla tua applicazione Laravel. Controlla la youtube_access_tokens
tabella e dovresti vedere i token inseriti nella colonna ‘access_token’. Questo è un processo una tantum. La libreria genererà automaticamente access_token in background anche se è scaduto. L’utente non ha bisogno di autorizzare nuovamente il proprio account.
Carica video sull’account YouTube nell’applicazione Laravel
A questo punto, sei pronto con il token di accesso. Ora crea un modulo per sfogliare il file video e inviarlo a YouTube. Creiamo un controller eseguendo il comando seguente.
php artisan make:controller VideoController --resource
Definire i percorsi per VideoController
come segue.
route/web.php
<?php
...
Route::resource('video', 'VideoController');
Crea una vista resources/views/video.blade.php
e aggiungi il codice seguente al suo interno.
<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>
Chiama questo file di visualizzazione dal index
metodo del nostro controller.
public function index()
{
return view('video');
}
Ora, quando visiti YOUR_DOMAIN_URL/video vedrai un modulo che contiene l’input del file, il titolo, la descrizione e il pulsante di invio.
Per chiamare l’API YouTube, aggiungi una classe YouTube in un controller. E nel store
metodo scrivi il codice per caricare un video su YouTube come segue.
<?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();
}
}
Qui stiamo passando un file video, titolo e descrizione dal nostro modulo. Questo codice carica semplicemente il tuo video su YouTube e stampa l’ID del video di YouTube.
Spero che tu capisca sul caricamento di un video su YouTube nell’applicazione Laravel. L’utente può anche aggiornare ed eliminare i video utilizzando il codice fornito dalla libreria. Puoi leggere di più a riguardo sulla loro documentazione.
articoli Correlati
- Integrazione PayPal Payments Pro in Laravel
- Come creare un blog con Laravel
- Come caricare e ritagliare immagini in Laravel