Kuidas videot YouTube’i üles laadida Laraveli rakenduses
Hiljuti küsis üks meie lugejatest, kuidas Laraveli rakendusest YouTube’i video üles laadida. Nad tahtsid luua süsteemi, mis saaks YouTube’i videoid üles laadida rakenduse Laravel kaudu. Seda tehes ei pea nad andma oma YouTube’i kontole juurdepääsu tiimiliikmetele, kes haldavad YouTube’i konto videoid.
Varem olen kirjutanud artikli, milles selgitatakse video üleslaadimist YouTube’i, kasutades PHP-s YouTube’i API-d. Selles artiklis näeme, kuidas Laraveli rakendusest YouTube’i video üles laadida.
Registreerige rakendus ja hankige volikirjad
Alustamiseks peab teil olema Google’i konto. Google’i kontol peate oma rakenduse registreerima ja hankima API-võtmed.
Allpool on juhised rakenduse registreerimiseks ja API võtmete haaramiseks.
- Minge Google’i arendajakonsoolile https://console.developers.google.com.
- Looge uus projekt. Samuti saate valida olemasoleva projekti.
- Sisestage oma projekti nimi. Google Console loob teile ainulaadse projekti ID.
- Projekti loomisel kuvatakse see vasaku külgriba ülaosas.
- Klõpsake vasakpoolses menüüs valikut Raamatukogu. Näete Google’i API-de loendit. Lubage YouTube Data API.
- Järgmiseks klõpsake vasakpoolses menüüs valikut Mandaadid. Valige Loo mandaadid jaotisest Oauth Client id. Valige veebirakenduse jaoks raadionupp.
- Pange nimi. Sisestage jaotises Volitatud JavaScripti päritolu oma domeeni URL. Volitatud ümbersuunamise URI-desse lisage ümbersuunamise URL-i link aadressina http: // localhost: 8000 / youtube / callback. Edastan siin oma kohaliku URL-i. Peaksite seda URL-i oma domeeniga kohandama.
- Lõpuks klõpsake nuppu Loo. Hüpikaknast saate kliendi ID ja kliendisaladuse. Kopeerige need üksikasjad. Nõuame seda varsti.
Installige ja seadistage GitHubi teek
Kui olete rakenduse loonud, peate järgmisena installima joedawsoni / youtube’i teegi. Selle teegi installimiseks avage terminal oma projekti juurkataloogis ja käivitage käsk:
composer require dawson/youtube
Pärast teegi installimist peaksite teenusepakkuja ja varjunimed config/app.php
faili registreerima.
config / app.php
....
'providers' => [
...
DawsonYoutubeYoutubeServiceProvider::class,
],
....
'aliases' => [
...
'Youtube' => DawsonYoutubeFacadesYoutube::class,
],
Järgmisena avaldage youtube.php
ja migrations, kasutades järgmist käsku:
php artisan vendor:publish --provider="DawsonYoutubeYoutubeServiceProvider"
Ülaltoodud käsk teisaldab faili youtube.php
kausta ‘config’ ja kausta ‘andmebaas / migreerimised’ migreerimisfaili. Nüüd peate käivitama migratsiooni käsu, mis loob youtube_access_tokens
andmebaasi tabelitabeli.
php artisan migrate
See tabel salvestaks juurdepääsuloa ja värskendaks luba pärast YouTube’i konto volitamist. Access_token on vajalik YouTube’i API-ga suhtlemisel. Juurdepääsuluba toimib teie YouTube’i konto identifikaatorina. Juurdepääsuloa eluiga on lühike, nii et uue juurdepääsuloa saamiseks kasutab see teek värskendusmärki. Nende märkide tabelisse sisestamise pärast ei pea te muretsema. Raamatukogu teeb seda taustal.
Oleme kopeerinud API mandaadid, mis tuleb panna Laraveli rakendusse. Avage .env
fail ja lisage oma kliendi ID ja kliendisaladus järgmiselt:
GOOGLE_CLIENT_ID=
GOOGLE_CLIENT_SECRET=
Kui teete keskkonnafailis muudatusi, peaksite konfiguratsiooni tühjendama käsuga:
php artisan config:clear
Google’i konto autoriseerimine
Turvalisuse huvides on teie Laraveli rakendusega YouTube’i konto autoriseerimise marsruudid vaikimisi keelatud. Peate selle lubama oma config/youtube.php
. Avage config/youtube.php
ja lubage see, asendades vale väärtuse tõesega.
...
'enabled' => true, //set it to 'false' after authorization
Nüüd saate oma konto autoriseerida, kasutades brauseris URL-i YOUR_DOMAIN_URL / youtube / auth. Teie konto autentimiseks suunatakse see Google’i sisselogimislehele. Viige protsess lõpule. Eduka autentimise korral suunate tagasi oma Laraveli rakendusse. Kontrollige youtube_access_tokens
tabelit ja peaksite nägema veergu „access_token" sisestatud märgid. See on ühekordne protsess. Raamatukogu genereerib taustal juurdepääsu_kõned automaatselt, isegi kui see on aegunud. Kasutajal pole vaja oma kontot uuesti autoriseerida.
Laadige video üles YouTube’i kontole Laraveli rakenduses
Selles etapis olete pääsukoodiga valmis. Nüüd looge vorm videofaili sirvimiseks ja saatke see YouTube’i. Loome kontrolleri, käivitades alloleva käsu.
php artisan make:controller VideoController --resource
Määrake marsruudid VideoController
järgmiselt.
marsruudid / web.php
<?php
...
Route::resource('video', 'VideoController');
Looge vaade resources/views/video.blade.php
ja lisage sinna allolev kood.
<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>
Helistage sellele vaatefailile index
meie kontrolleri meetodil.
public function index()
{
return view('video');
}
Nüüd, kui külastate saiti YOUR_DOMAIN_URL / video, näete vormi, mis sisaldab faili sisestamise, pealkirja, kirjelduse ja esitamise nuppu.
YouTube’i API-le helistamiseks lisage kontrolleris YouTube’i klass. Ja store
meetodisse kirjutage video YouTube’i üleslaadimise kood järgmiselt.
<?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();
}
}
Siin edastame oma vormilt videofaili, pealkirja ja kirjelduse. See kood lihtsalt laadib teie video YouTube’i üles ja prindib YouTube’i video ID.
Loodan, et saate aru video üleslaadimisest YouTube’i Laraveli rakenduses. Kasutaja saab videoid värskendada ja kustutada ka teegi antud koodi abil. Võite selle kohta rohkem lugeda nende dokumentatsioonist.