2012-12-05 24 views
6

Chciałbym przesłać filmy na youtube z mojej aplikacji internetowej java: Chcę otrzymać (po stronie serwera) mój authToken i formularz-akcja, aby przesłać wideo.NoLinkedYoutubeAccount błąd 401 podczas przesyłania filmów na Youtube z java

  • Utworzyłem nowy google/youtube konto
  • Został utworzony kanał youtube na moim rachunku
  • I utworzeniu nowego projektu w moim konsoli google api jako konto usługi

Teraz próbuję zaimplementować mój kod za pomocą oAuth 2.0. Mam token access, ale gdy próbuję wywołać usługę getFormUploadToken (adres URL, obiekt), odpowiedź jest zawsze taka sama "NoLinkedYoutubeAccount błąd 401".

Sprawdziłem również konto przez stronę pomocy Google pod adresem http://www.youtube.com/my_account_unlink, ale wygląda na to, że jest OK.

Czy ktoś ma pomysł na ten problem?

To jest mój kod:

HttpTransport HTTP_TRANSPORT = new NetHttpTransport(); 
    JsonFactory JSON_FACTORY = new JacksonFactory(); 
    String accessToken = ""; 
    GoogleCredential credential = null; 


    credential = new GoogleCredential.Builder().setTransport(HTTP_TRANSPORT) 
      .setJsonFactory(JSON_FACTORY) 
      .setServiceAccountId(CLIENT_EMAIL) 
      .setServiceAccountScopes("http://gdata.youtube.com") 
      .setServiceAccountPrivateKeyFromP12File(new File(PRIVATE_KEY_PATH)) 
      .build(); 
    credential.refreshToken(); 
    accessToken = credential.getAccessToken(); 


    YouTubeService service = new YouTubeService(CLIENT_ID, DEV_KEY); 
    service.setAuthSubToken(accessToken, null); 
    VideoEntry newEntry = new YouTubeMediaGroup mg = newEntry.getOrCreateMediaGroup(); 
    mg.setTitle(new MediaTitle()); 
    mg.getTitle().setPlainTextContent("My Test Movie"); 

    URL uploadUrl = new URL("http://gdata.youtube.com/action/GetUploadToken"); 
    FormUploadToken token = service.getFormUploadToken(uploadUrl, newEntry); 

dziękuję, Albert III

Odpowiedz

3

Nie można powiązać kanał YouTube z kontem usługi, a ty próbujesz przesłać w kontekście konta usługi.

Zamiast korzystać z kont usług, należy przejść przez przepływ OAuth 2 i autoryzować dostęp podczas logowania do przeglądarki przy użyciu konta, do którego rzeczywiście chcesz przesłać.

Rozumiem korzyści płynące z używania kont usług, ale serwis YouTube nie jest skonfigurowany do pracy z nimi w tym momencie.

+0

Witaj Jeff, dziękuję za odpowiedź! Chcę, aby użytkownicy zalogowani w mojej witrynie mogli przesyłać filmy wideo na moim kanale. Czy to możliwe? Jeszcze raz dziękuję Albert III –

+0

Zobacz http://apiblog.youtube.com/2012/02/video-uploads-from-your-sites-community.html z powodów, dla których to, co proponujesz, nie jest dobrym pomysłem. –

2

Jeśli utworzyłeś konto YouTube i zostało ono powiązane z kontem Google, upewnij się, że utworzysz własny kanał w swoim youtube.

Pozwoli to interfejsowi API przesłać filmy wideo do utworzonego kanału.

Mam nadzieję, że to pomaga.

4

Jak informuje błąd, nie połączyłeś danych logowania do konta youtube.

Można rozwiązać ten problem: - Podłączanie za pomocą konta używanego w aplikacji na www.youtube.com - Próba przesłać film - Ustawienie imienia i nazwiska podczas youtube zapytać, a proces odwołuje się do Gmaila.

Zrobione !!! Próbowałem przed użyciem mojej aplikacji, aby przesłać wideo za pomocą przeglądarki Firefox.

Powiązane problemy