【问题标题】:YouTube and OAuth 2.0 in .Net.Net 中的 YouTube 和 OAuth 2.0
【发布时间】:2012-02-16 19:27:40
【问题描述】:

有谁知道如何使用 OAuth 2.0 正确验证帐户,然后使用该身份验证令牌访问用户的 YouTube 帐户?

http://code.google.com/apis/youtube/2.0/developers_guide_protocol_oauth2.html 的末尾写着

支持 YouTube 数据 API 的 Google 数据客户端库目前不支持 OAuth 2.0。但是,一组较新的不支持 YouTube 数据 API 的 Google API 客户端库确实提供了 OAuth 2.0 支持。 因此,可以选择使用下面列出的这些较新的库来实现其 OAuth 2.0 功能,然后强制 Google Data 客户端库使用您获得的 OAuth 2.0 令牌。

我的应用程序通过 OAuth 2.0 进程成功运行,并且我获得了一个访问令牌,应该能够访问 youtube,但我不知道如何“强制使用 Google 数据”使用 OAuth 2.0 令牌的客户端库”。

任何示例代码都会很棒。

利隆

PS 这是一个桌面应用程序。

【问题讨论】:

    标签: c# desktop-application youtube-api oauth-2.0 gdata-api


    【解决方案1】:

    要执行此操作,您需要在 google 数据应用程序 (https://code.google.com/apis/console) 和 youtube api (http://code.google.com/) 上设置一个帐户api/youtube/仪表板)。

    然后,您必须使用他们的 oauth 机制对 google data 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();
    }
    

    然后,您必须使用从上面获得的访问令牌和 youtube 开发人员密钥来验证 youtube api。 {代码}

        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;
    

    希望这对某人有所帮助。

    【讨论】:

      猜你喜欢
      • 2014-10-06
      • 2013-11-29
      • 2020-10-21
      • 1970-01-01
      • 1970-01-01
      • 2011-11-01
      • 2016-06-18
      • 1970-01-01
      • 2016-06-11
      相关资源
      最近更新 更多