我在 2010 年使用 C# .NET 2.0 winform,添加了用户登录和发表评论的功能。我复制了 .NET 开发人员指南中的如何发表评论,但在尝试发表评论时出现随机但频繁的异常。起初我认为这可能是因为使用 google 电子邮件而不是 youtube 登录名存在一些问题,当用户成功登录时,为了解决这个问题,我请求配置文件,获取用户名并创建一个新的youtube 设置类,并使用用户个人资料名称提供适当的凭据。然而,这并没有解决问题,评论仍然偶尔有效。这是基本上处理登录的代码。
youtubeService.setUserCredentials(userBox.Text, passwordBox.Text);
try
{
String strAuth = youtubeService.QueryClientLoginToken();
}
catch (Exception ex)
{
}
上面的代码是一个单独的表单,托管 youtube 视频的表单基本上是查看此过程是否已完成,并获取用于登录的用户名、密码并设置新设置:
m_LoggedInSettings = new YouTubeRequestSettings(myappname, mydevkey, username, password);
m_LoggedInRequest = new YouTubeRequest(m_LoggedInSettings);
然后用于添加评论:
Comment userComment = new Comment();
userComment.Content = commentText;
m_LoggedInRequest.AddComment(youtubevideo, userComment);
当它失败时,我得到以下信息:
{“请求执行失败:https ://gdata.youtube.com/feeds/api/videos/t-8K8Hj8bxE/comments ”}
使用以下信息:
{“远程服务器返回错误:(403) Forbidden。”}
状态码:
System.Net.HttpStatusCode.Forbidden
状态说明:
禁止的
我想到了几件事,我没有适当的注销来立即向 youtube 发送任何内容(这需要吗?),所以可能是我已经登录了多次,并且不知何故在 youtube 上标记边?也可能是我本质上是在创建新的设置并请求未用于获取视频/评论的对象,也许从正常设置文件(没有登录)中获取的视频出现问题或类似的问题?老实说,我不知道出了什么问题,任何帮助都会非常感激。