2015-01-19 11 views
9

Próbuję tylko pobrać tytuł filmu w YouTube. Nie mogę tego zrozumieć. Do tej pory mam to:Jak uzyskać tytuł wideo w YouTube za pomocą interfejsu API adresu URL v3 w javascript w Ajax i 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); 
     } 
    }); 

Dzięki

Odpowiedz

10

mam to działa przy użyciu

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

i

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

Więc nie wiele złego ze składnią! Ale stwierdziłem, że problem był naprawdę w backend podczas konfigurowania "dozwolonych stron odsyłających" interfejsu API Google. Dzięki V3 API możesz wybrać, do których stron należy użyć interfejsu API, aby inni nie mogli po prostu ukraść Twojego API i go użyć. Interfejs API będzie działać, jeśli żądanie pochodzi z podanej nazwy/adresu IP domeny. Kiedy nie przyznam tego ograniczenia, kod działa, ale kiedy wprowadzę moją domenę, to się nie uda! Wprowadziłem .mydomainname.com/, w tym samym formacie, w jakim zostało to zasugerowane, ale w jakiś sposób to pomija. Teraz już wiem dlaczego.

+0

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

+0

Czy nie byłoby źle robić rzeczy w ten sposób? Ponieważ musiałbyś narazić swój apiKey na javascript, który może być oglądany przez kogokolwiek? –

+1

Rozumiem, że możesz połączyć swoją domenę z kluczem API na stronie konfiguracji Google! W ten sposób Youtube wie, skąd pochodzi wywołanie API, dlatego inne osoby nie mogą po prostu użyć Twojego klucza API. Wpadłem na jakiś problem, żeby go uruchomić, więc miałem otwarte pytanie. Jest tam komentarz, ale jeszcze go nie wypróbowałem: http://stackoverflow.com/questions/28032237/youtube-api-v3-referer-not-working-in-javascript?noredirect=1#comment44452710_28032237 –

3

Poniższy kod jQuery pobiera tytuł filmu.

$.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

Czy nie byłoby źle robić rzeczy w ten sposób? Ponieważ musiałbyś narazić swój apiKey na javascript, który może być oglądany przez kogokolwiek? –

Powiązane problemy