2012-01-23 1 views
2

누구든지 OAuth 2.0을 사용하여 계정을 올바르게 인증 한 다음 해당 인증 토큰을 사용하여 사용자의 YouTube 계정에 액세스하는 방법을 알고 있습니까? http://code.google.com/apis/youtube/2.0/developers_guide_protocol_oauth2.html의 끝에서.Net에있는 YouTube 및 OAuth 2.0

그것은

현재의 OAuth 2.0을 지원하지 않는 유튜브 데이터 API를 지원하는 Google 데이터 클라이언트 라이브러리를 말한다. 그러나 YouTube Data API를 지원하지 않는 최신 버전의 Google API 클라이언트 라이브러리는 OAuth 2.0 지원을 제공합니다. OAuth 2.0 기능을 위해 아래에 나열된 최신 라이브러리를 사용하고 Google 데이터 클라이언트 라이브러리에서 사용자가 획득 한 OAuth 2.0 토큰을 사용하도록하는 옵션이 있습니다.

내 응용 프로그램이 성공적으로 OAuth는 2.0 프로세스를 실행하고 나는 유튜브에 액세스 할 수 있어야합니다 액세스 토큰을 받고 있어요,하지만 나는 "Google 데이터 클라이언트 라이브러리를 강제하는 방법을 모른다 OAuth 2.0 토큰 사용 "을 선택하십시오.

모든 예제 코드는 훌륭합니다.

Liron

PS이 데스크톱 응용 프로그램입니다.

답변

3

Google 데이터 앱 (https://code.google.com/apis/console)과 youtube apis (http://code.google.com)에서 계정을 설정해야합니다./apis/youtube/dashboard).

그런 다음 oauth 메커니즘을 사용하여 Google 데이터 API를 인증해야합니다. 다음과 같은 것 - 이것은 우리가 가지고있는 코드에서 벗어난 것입니다. {코드}

//Create Client  
m_Client = new NativeApplicationClient(GoogleAuthenticationServer.Description, m_ClientID, m_ClientSecret); 
//Add Youtube scope to requested scopes 
m_Scopes.Add("https://gdata.youtube.com"); 
//Get Authentication URL 
authStateInitial = new AuthorizationState(m_Scopes); 
authStateInitial.Callback = new Uri(NativeApplicationClient.OutOfBandCallbackUrl); 
Uri authUri = m_Client.RequestUserAuthorization(authStateInitial); 

//Navigate to URL, authenticate get accessToken 
string accessToken = ...; 

string[] tokens = accessToken.Split(new char[] { '&' }); 
if(tokens.Length == 2) 
{ 
    authStateFinal = new AuthorizationState(m_Scopes); 
    authStateFinal.AccessToken = tokens[0]; 
    authStateFinal.RefreshToken = tokens[1]; 

    if(m_AuthStateInitial == null) 
    { 
    m_Client.RefreshToken(m_AuthStateFinal); 
    } 
    OAuth2Authenticator<NativeApplicationClient> authenticator = new OAuth2Authenticator<NativeApplicationClient>(m_Client, GetState); //GetState returns authStateInitial 
    authenticator.LoadAccessToken(); 
} 

그런 다음 당신은 당신이 위와 유튜브 개발자 키에서 가져온 액세스 토큰을 모두 사용하여 유튜브 API를 인증해야합니다. {code}

GAuthSubRequestFactory m_Authenticator = new GAuthSubRequestFactory(ServiceNames.YouTube, "Product Name"); 
    m_Authenticator.Token = AccessToken; 

    YouTubeService m_YouTubeService = new YouTubeService(m_Authenticator.ApplicationName, m_DeveloperKey); 
    m_YouTubeService.RequestFactory = m_Authenticator; 

희망이 있으면 도움이 될 것입니다.