2015-01-19 13 views
9

Sto solo cercando di recuperare il titolo del video di Youtube. Non riesco a capirlo. Finora ho questo:Come ottenere il titolo del video Youtube con l'API dell'URL v3 in javascript w Ajax & JSON

 q = 'https://www.googleapis.com/youtube/v3/videos?id='+ itemId +'&key='+ ytApiKey +'&fields=items(snippet(channelId,title,categoryId))&part=snippet' ; 

$.ajax({ 
     url: q, 
     dataType: "jsonp", 
     success: function(data){ 
       alert(data.items[0].title); 
       console.log(data.snippet.title);    
     }, 
     error: function(jqXHR, textStatus, errorThrown) { 
      alert (textStatus, + ' | ' + errorThrown); 
     } 
    }); 

Grazie,

risposta

10

ho ottenuto che funziona utilizzando

https://www.googleapis.com/youtube/v3/videos?id=itemId&key=apiKey&fields=items(snippet(title))&part=snippet 

e

alert(data.items[0].snippet.title); 

Quindi, non molto male con la sintassi! Ma ho scoperto che il problema era in realtà nel backend durante la configurazione dei "referer consentiti" dell'API di Google. Con l'API V3, puoi selezionare a quali referenti deve appartenere l'API, in modo che altri non possano semplicemente rubare la tua API e utilizzarla. Quindi l'API funzionerà se la richiesta è originata dal nome di dominio/IP specificato. Quando non gli do restrizioni, il codice funziona, ma quando inserisco il mio dominio fallisce! Ho inserito .mydomainname.com/, lo stesso formato suggerito, ma errori in qualche modo .. Ora ho capito perché.

+0

https://developers.google.com/youtube/v3/docs/videos/list – Lane

+0

Non sarebbe male fare le cose in questo modo? Dal momento che dovresti esporre il tuo apiKey al javascript, che potrebbe essere visualizzato da chiunque? –

+1

Mi risulta che tu possa collegare il tuo dominio alla tua chiave API nella pagina di configurazione di Google! In questo modo YouTube sa da dove proviene la chiamata API, quindi altre persone non possono semplicemente utilizzare la tua chiave API. Mi sono imbattuto in qualche problema per farlo funzionare, quindi ho avuto una domanda aperta. C'è un commento lì, ma non l'ho ancora provato: http://stackoverflow.com/questions/28032237/youtube-api-v3-referer-not-working-in-javascript?noredirect=1#comment44452710_28032237 –

3

Il seguente codice jQuery verrà recuperato il titolo del video.

$.ajax({ 
     url: "https://www.googleapis.com/youtube/v3/videos?id=" + videoId + "&key="+ apiKey + "&fields=items(snippet(title))&part=snippet", 
     dataType: "jsonp", 
     success: function(data){ 
       console.log(data.items[0].snippet.title);   
     }, 
     error: function(jqXHR, textStatus, errorThrown) { 
      alert (textStatus, + ' | ' + errorThrown); 
     } 
    }); 
+3

Non sarebbe male fare le cose in questo modo? Dal momento che dovresti esporre il tuo apiKey al javascript, che potrebbe essere visualizzato da chiunque? –