2014-09-10 27 views
5

Chcę opublikować kilka filmów z YouTube w mojej aplikacji mobilnej za pomocą angularjs. Zależy mi, aby wyświetlić wszystkie filmy z listy odtwarzania określonej dla użytkownika/kanału.Jak korzystać z API KEY z YouTube w angularjs i wyświetlać filmy na liście odtwarzania?

Dostałem klucz API z Google Developer Console, ale nie rozumiem, jak i gdzie go używać. W tej dokumentacji przechodzą one tylko przez metodę oauth. https://developers.google.com/youtube/v3/code_samples/javascript#authorizing_requests Próbowałem użyć przykładowego kodu prosto z tej dokumentacji tylko, aby uzyskać komunikat, że muszę najpierw uwierzytelnić.

Naprawdę doceniam jakąś pomoc w tym. W jaki sposób uwierzytelnić za pomocą klawisza APi, a po drugie, w jaki sposób przesłać prośbę o przesłanie filmów na listę odtwarzania.

ps. Jestem programistą newbie i używam angularjs i framework jonowy do mojego pierwszego projektu edukacyjnego. Jestem świeżo po kursach Codeschool w css, jquery, javascript, kręgosłupie i kanciastym. ds. Dzięki!

+1

tylko po to, aby wyświetlić listę filmów z kanałem, który nie musi być uwierzytelniany – mpgn

+0

oh, fajnie! Potem muszę wymyślić, jak poprosić o listę i pokazać ją :) –

Odpowiedz

1

Musisz użyć Google APIs Client Library, aby zdefiniować obiekt gapi, a przykłady z google będą działały. uwzględnienie tego w dolnej części strony:

<script src="https://apis.google.com/js/client.js?onload=googleApiClientReady"></script> 

I niż zdefiniowanie zwrotnego, który dokona autoryzacji i swoją logikę:

googleApiClientReady = function() { 
    gapi.auth.init(function() { 
    // Other code following the example 
    }); 
} 

ogólnie jako za Google documentation istnieją

  1. Aplikacja ładuje bibliotekę kliencką JavaScript.

  2. Aplikacja odwołuje się do klucza API, który uwierzytelnia aplikację za pomocą usług Google.

  3. Jeśli aplikacja potrzebuje dostępu do danych osobowych użytkownika, otwiera sesję z serwerem auth Google. Serwer uwierzytelniający otwiera okno dialogowe, które monituje użytkownika o autoryzację wykorzystania danych osobowych.

  4. Aplikacja ładuje interfejs API dla usługi Google.

  5. Aplikacja inicjuje obiekt żądania (zwany także obiektem usługi), który określa dane, które mają zostać zwrócone przez interfejs API.

  6. Aplikacja wykonuje żądanie i przetwarza dane zwrócone przez interfejs API.

Oto working example procesu autoryzacji podstawowe google API

14

1. Jak korzystać z API

Jeśli chcesz filmy z kanału trzeba użyć YouTube API V3.Użyj youtube.search.list

z parametrami:

part=id, snippet 
channelId=ID OF THE CHANNEL 
order=date 
type=video 

Jak znaleźć identyfikator kanału YouTube?

można znaleźć identyfikator kanału z jego nazwy kanału z http://mpgn.github.io/YTC-ID/

Więcej informacji youtube.search.list prawej here.

To jest live demo.

2. Z Javascriptem?

  • Najpierw należy utworzyć projekt w wersji console.google.developers.
  • Włącz API YouTube API V3 (włączone).
  • W części poświadczającej, utwórz publiczny klucz dostępu.

Także jeśli jest to publiczna aplikacja może Cię zainteresować przez: How to protect my public API key ?

Jest to podstawowy kod, aby uzyskać wideo w kanale:

<!DOCTYPE html> 
<html> 
<head> 
<script src="//code.jquery.com/jquery-2.1.1.min.js"></script> 
    <meta charset="utf-8"> 
    <title>JS Bin</title> 
</head> 
<body> 
    <script> 

function googleApiClientReady() { 

    var apiKey = 'your api key'; 

    gapi.client.setApiKey(apiKey); 
    gapi.client.load('youtube', 'v3', function() { 

     request = gapi.client.youtube.search.list({ 
      part: 'snippet', 
      channelId: 'UCqhNRDQE_fqBDBwsvmT8cTg', 
      order: 'date', 
      type: 'video' 

     }); 

     request.execute(function(response) { 
       console.log(response); 

     }); 
    }); 

} 
    </script> 
    <script src="https://apis.google.com/js/client.js?onload=googleApiClientReady"></script> 
</body> 
</html> 

3. angularjs?

Z AngularJS należy na przykład utworzyć usługę "google", a można korzystać z usługi w kontrolerach.

Przykładowy przykład: https://gist.github.com/jakemmarsh/5809963 Nie potrzebujesz części z uwierzytelnieniem. Używanie deferred jest w tym przypadku ważne.

przykład w sterowniku

'use strict'; 

function init() { 
    window.initGapi(); // Calls the init function defined on the window 
} 
angular.module('team') 
    .controller('VideosCtrl', function ($scope, $window, $sce, googleService) { 

     $window.initGapi = function() { 
      $scope.$apply($scope.getChannel); 
     }; 

     $scope.getChannel = function() { 
      googleService.googleApiClientReady().then(function (data) { 
       $scope.channel = data; 
      }, function (error) { 
       console.log('Failed: ' + error) 
      }); 
     }; 
    }); 

przykład w służbie googleService

.service('googleService', ['$http', '$q', function ($http, $q) { 

    var deferred = $q.defer(); 
    this.googleApiClientReady = function() { 
     gapi.client.setApiKey('YOU API KEY'); 
     gapi.client.load('youtube', 'v3', function() { 
      var request = gapi.client.youtube.playlistItems.list({ 
       part: 'snippet', 
       playlistId: 'PLila01eYiSBjOtR8oqXkY0i5c1QS6k2Mu', 
       maxResults: 8 
      }); 
      request.execute(function(response) { 
       deferred.resolve(response.result); 
      }); 
     }); 
     return deferred.promise; 
    }; 
}]) 

Trzeba dodać tę linię do index.html

<script src="https://apis.google.com/js/client.js?onload=init"></script> 

Nadziei to jest hel p!

+0

Dzięki @martialdidi! Ale teraz utknąłem ... Zrobiłem to dobrze na część 3. Stworzyłem usługę, ale potem nie wiem jak używać kontrolera, aby uzyskać dane na DOM. Czy możesz pomóc? –

+3

masz na myśli, że nie wiesz jak używać AngularJS? – mpgn

+0

Haha tak. Jestem programistą newbie i używam angularjs i framework jonowy do mojego pierwszego projektu edukacyjnego. Jestem świeżo po kursach Codeschool w css, jquery, javascript, kręgosłupie i kanciastym. Przepraszam, zapomniałem wspomnieć o moim statusie n00b w tym pytaniu. Zwyklę robię. –