YouTube and OAuth 2.0 in .Net



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

在http://code.google.com/apis/youtube/2.0/developers_guide_protocol_oauth2.html上面写着

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

我的应用程序成功运行了OAuth 2.0进程,我得到了一个访问令牌,应该能够访问youtube,但我不知道如何"强制Google Data客户端库使用OAuth 2.0token"。

任何示例代码都非常好。

Liron

PS这是用于桌面应用程序的。

要做到这一点,你需要在谷歌数据应用程序上设置两个帐户(https://code.google.com/apis/console)以及youtube api(http://code.google.com/apis/youtube/dashboard)。

然后,您必须使用oauth机制对google数据api进行身份验证。类似以下内容-这是从我们的一些代码中删除的。{code}

//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。{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;

希望这能帮助到别人。

相关内容

  • 没有找到相关文章

最新更新