2010-02-19 61 views
1

我正尝试使用YouTube API从浏览器上传视频。我读谷歌API文档,写了这段代码:YouTube API身份验证问题

public static YouTubeRequest GetRequest() 
    { 
     var request = HttpContext.Current.Session["YTRequest"] as YouTubeRequest; 
     if (request == null) 
     { 
      var settings = new YouTubeRequestSettings("WebApp", "NA", ConfigurationManager.AppSettings["YouTubeAPIDeveloperKey"]); 

      settings.AutoPaging = true; 
      request = new YouTubeRequest(settings); 
      HttpContext.Current.Session["YTRequest"] = request; 
     } 
     return request; 
    } 

var youTubeRequest = GetRequest(); 
var newVideo = new Video { Title = "Title", Description = "Description" }; 
newVideo.YouTubeEntry.Private = false; 

var token = youTubeRequest.CreateFormUploadToken(newVideo); 
var postUrl = token.Url; 
var tokenValue = token.Token; 

但我总是收到此错误信息: 远程服务器返回错误:(401)未经授权。

在这条线:

var token = youTubeRequest.CreateFormUploadToken(newVideo); 

我想我的问题是不相关的开发人员API密钥。它从API仪表板正确抓取。

有什么想法?

+0

忘了说,我从本地机器发送此请求。是不是重要? – 2010-02-19 14:20:20

+1

我将YoutubeRequest更改为var settings = new YouTubeRequestSettings(“RazmpaWebApp”,“NA”, ConfigurationManager.AppSettings [“YouTubeAPIDeveloperKey”], “--USERNAME--”, “--PASSWORD--”); 现在我收到此错误: 远程服务器返回错误:(400)错误的请求。 – 2010-02-19 19:28:49

回答

3

我自己发现了问题!

newVideo.Keywords = "some keywords"; 

是必需的,你应该发送它。

请注意,我之前解释过,我更改了YouTubeRequest参数以摆脱401错误消息(请参阅我自己的意见)。