我正在为登录的用户获取ProfileEntry。我设法获取了用户名等,但是我在获取用户个人资料图片时遇到了困难。当我在元素下的http://gdata.youtube.com/feeds/api/users/iamryancoke上浏览时,我在浏览器中看到了该图片,但我我不确定如何使用C#实现访问它。
编辑:
我正在使用OAuth,这是我试图找出如何从中获取缩略图的代码:
// Prepare YouTube request settings.
var settings = new YouTubeRequestSettings(youtubeSettings.AppName, youtubeSettings.DeveloperKey,
consumer.ConsumerKey, consumer.TokenManager.ConsumerSecret, accessToken, consumer.TokenManager.GetTokenSecret(accessToken),
youtubeSettings.User, MessagingUtilities.GetRequestUrlFromContext().StripQueryArgumentsWithPrefix("oauth_").ToString());
// Prepare YouTube request.
var youtubeRequest = new YouTubeRequest(settings);
var entry = youtubeRequest.Service.Get("http://gdata.youtube.com/feeds/api/users/default");;
return (ProfileEntry)entry;
最佳答案
我想您正在使用Google Data API .NET客户端库。
http://code.google.com/p/google-gdata/
我花了一些时间弄清楚缩略图的隐藏位置。他们掩埋得很好,但是您可以按如下方式检索个人资料照片:
var service = new YouTubeService("My YouTube Application");
service.setUserCredentials("your_email_address@gmail.com", "yourpassword");
var token = service.QueryClientLoginToken();
service.SetAuthenticationToken(token);
string feedUrl = "http://gdata.youtube.com/feeds/api/users/yourusername";
var profile = (ProfileEntry) service.Get(feedUrl);
var thumbnail = (from e in profile.ExtensionElements
where e.XmlName == "thumbnail"
select (XmlExtension) e).SingleOrDefault();
if (thumbnail != null)
{
var thumbnailUrl = thumbnail.Node.Attributes["url"].Value;
}
获得个人资料图片的缩略图URL后,您可以使用简单的Web请求来下载和保存图片。
一个简单的例子:
string thumbnailUrl =
"http://i4.ytimg.com/i/sIb6065PuhCXorT1WfbJAw/1.jpg?v=bf5482";
WebRequest request = WebRequest.Create(thumbnailUrl);
WebResponse response = request.GetResponse();
Image image = Image.FromStream(response.GetResponseStream());
var extension = Path.GetExtension(thumbnailUrl).Substring(0, 4);
image.Save(@"c:\me" + extension);
关于c# - YouTube API登录用户缩略图C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7055127/