我的网页是在 .net 中开发的,我正在尝试使用以下代码向 youtube 视频添加评论。
string lsDeveloperKey = "myDeveloperKey";
//This will ask user to login to accounts.google for posting comment
if (!Request.QueryString.AllKeys.Contains("token"))
{
string lsUserName = "myusername";
string lsPassword = "mypassword";
YouTubeRequestSettings loSettings = new YouTubeRequestSettings(Keys.PortalName, lsDeveloperKey, lsUserName, lsPassword);
YouTubeRequest loRequest = new YouTubeRequest(loSettings);
Uri videoEntryUrl = new Uri(string.Format("{0}/{1}", Google.GData.YouTube.YouTubeQuery.DefaultVideoUri, "ofjQ_Gf5CQc"));
Google.YouTube.Video loVideo = loRequest.Retrieve<Google.YouTube.Video>(videoEntryUrl);
string lsRandomVideoId = getRandomId() + loVideo.VideoId;
Session[lsRandomVideoId] = loVideo; ;
Response.Redirect(AuthSubUtil.getRequestUrl(Request.Url.ToString() + "?v=" + lsRandomVideoId, "http://gdata.youtube.com", false, true));
}
//This will post a comment for logged user
else
{
Session["token"] = AuthSubUtil.exchangeForSessionToken(Request.QueryString["token"], null).ToString();
YouTubeRequestSettings loSettings = new YouTubeRequestSettings(Keys.PortalName, lsDeveloperKey, (String) Session["token"]);
YouTubeRequest loRequest = new YouTubeRequest(loSettings);
Video loVideo = (Video)Session[Request.QueryString["v"]];
Comment loComment = new Comment();
loComment.Content = "This is my comment from my app";
loRequest.AddComment(loVideo, loComment);
}
}
此代码执行没有任何错误。如果我使用“myusername”和“mypassword”登录,它也会发表评论。
但是如果我用任何其他用户登录它会给我以下错误:E
Execution of request failed:
https://gdata.youtube.com/feeds/api/videos/ofjQ_Gf5CQc/comments
Stacktrace: at Google.GData.Client.GDataRequest.Execute() at
Google.GData.Client.GDataGAuthRequest.Execute(Int32 retryCounter) at
Google.GData.Client.GDataGAuthRequest.Execute() at
Google.GData.Client.Service.EntrySend(Uri feedUri, AtomBase baseEntry,
GDataRequestType type, AsyncSendData data) at
Google.GData.Client.MediaService.EntrySend(Uri feedUri, AtomBase
baseEntry, GDataRequestType type, AsyncSendData data) at
Google.GData.Client.Service.Insert(Uri feedUri, AtomEntry newEntry,
AsyncSendData data) at Google.GData.Client.Service.Insert[TEntry](Uri
feedUri, TEntry entry) at
Google.YouTube.YouTubeRequest.AddComment(Video v, Comment c) at
YouTubeComment.Page_Load(Object sender, EventArgs e)
我在这方面做了很多工作。我不确定这里有什么问题。任何帮助,将不胜感激。