2012-01-23 1 views
2

Кто-нибудь знает, как правильно аутентифицировать учетную запись, используя OAuth 2.0, а затем использовать этот токен аутентификации для доступа к учетной записи пользователя YouTube?YouTube и OAuth 2.0 в .Net

В конце http://code.google.com/apis/youtube/2.0/developers_guide_protocol_oauth2.html он говорит

клиентские библиотеки Google Data, которые поддерживают API данных YouTube в настоящее время не поддерживает OAuth 2.0. Тем не менее, новый набор клиентских библиотек Google API, которые не поддерживают API данных YouTube, предоставляют поддержку OAuth 2.0. Таким образом, это возможность использовать эти новые библиотеки, перечисленные ниже, для их возможностей OAuth 2.0, а затем принудительно использовать клиентскую библиотеку Google Data для использования маркеров OAuth 2.0, которые вы получили.

У меня есть мое приложение успешно работает через процесс OAuth 2.0, и я получаю маркер доступа, который должен быть в состоянии получить доступ к YouTube, но я не знаю, как «заставить клиентскую библиотеку Google Data для использования токена (ов) OAuth 2.0 ».

Любой пример кода будет большим.

Liron

PS Это для настольного приложения.

ответ

3

Для этого необходимо создать учетную запись, настроенную на приложениях данных Google (https://code.google.com/apis/console), и с помощью apt youtube (http://code.google.com/APIs/YouTube/панель).

Затем вы должны аутентифицировать данные api google, используя свои механизмы oauth. Что-то вроде следующего - это потрошено от некоторого кода, который у нас есть. {код}

//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 YouTube, как с помощью маркера доступа вы получили от выше и разработчиков Key YouTube. {код}

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; 

Надеется, что это поможет кому-то.

 Смежные вопросы

  • Нет связанных вопросов^_^