【发布时间】:2014-06-23 10:14:33
【问题描述】:
我整天都在尝试将视频删除/添加到我的 YouTube 播放列表中。我正在使用 YouTube 数据 API v.3.0。对于 .NET C#。 我已经在 Google Developer Console 中创建了一个项目并获得了我的客户端机密 JSON 文件。此外,我用于获取列表项的代码工作正常,这意味着只有 PUT 操作没有按预期工作。我使用的代码与谷歌开发者网站代码示例中的代码几乎相同。
认证方式:
private async Task<YouTubeService> GetYouTubeService(string userEmail)
{
UserCredential credential;
using (var stream = new FileStream("client_secrets.json", FileMode.Open, FileAccess.Read))
{
credential = await GoogleWebAuthorizationBroker.AuthorizeAsync(
GoogleClientSecrets.Load(stream).Secrets,
new[]
{
YouTubeService.Scope.Youtube,
YouTubeService.Scope.Youtubepartner,
YouTubeService.Scope.YoutubeUpload,
YouTubeService.Scope.YoutubepartnerChannelAudit,
YouTubeService.Scope.YoutubeReadonly
},
userEmail,
CancellationToken.None,
new FileDataStore(this.GetType().ToString()));
}
var youtubeService = new YouTubeService(new BaseClientService.Initializer()
{
HttpClientInitializer = credential,
ApplicationName = this.GetType().ToString()
});
return youtubeService;
}
将视频添加到播放列表代码:
private async Task AddSongToPlaylistAsync(string userEmail, string songId, string playlistId)
{
var youtubeService = await this.GetYouTubeService(userEmail);
var newPlaylistItem = new PlaylistItem();
newPlaylistItem.Snippet = new PlaylistItemSnippet();
newPlaylistItem.Snippet.PlaylistId = playlistId;
newPlaylistItem.Snippet.ResourceId = new ResourceId();
newPlaylistItem.Snippet.ResourceId.Kind = "youtube#video";
newPlaylistItem.Snippet.ResourceId.VideoId = songId;
newPlaylistItem = await youtubeService.PlaylistItems.Insert(newPlaylistItem, "snippet").ExecuteAsync();
}
这是我尝试将新视频添加到指定播放列表时收到的消息:
Google.Apis.Requests.RequestError 权限不足 [403] 错误 [ Message[Insufficient Permissions] Location[-] Reason[insufficientPermissions] Domain[global] ]
我非常感谢任何可用的帮助,因为我没有找到任何有用的谷歌搜索。 先感谢您!
【问题讨论】: