Я пишу простое приложение, которое берет некоторые новые закачки из подписанных каналов и добавляет их в указанный список воспроизведения. Тип сервиса используется учетная запись с помощью следующего кода:Учетная запись службы API YouTube возвращает «запрещено 403» при вставке элемента списка воспроизведения
var certificate = new X509Certificate2(certificateFileName, "notasecret", X509KeyStorageFlags.Exportable);
var serviceInitializer = new ServiceAccountCredential.Initializer(serviceAccountEmail)
{
Scopes = new[] { YouTubeService.Scope.Youtube }
};
var serviceInitializerInstance = serviceInitializer.FromCertificate(certificate);
var credential = new ServiceAccountCredential(serviceInitializerInstance);
var youtubeService = new YouTubeService(new BaseClientService.Initializer
{
HttpClientInitializer = credential,
ApplicationName = applicationName
});
Я преуспел в чтении всей необходимой информации, но когда я пытаюсь вставить элемент в список воспроизведения она всегда возвращает эту ошибку:
Error: Google.Apis.Requests.RequestError Access forbidden. The request may not be properly authorized. [403]
Errors [ Message[Access forbidden. The request may not be properly authorized.] Location[ - ] Reason[forbidden] Domain[yo utube.common] ]
Это кажется будь то общая ошибка Core API в соответствии с ссылкой this.
Я видел много образцов, и они все одинаковы. Мой код:
var newPlaylistItemClone = new PlaylistItem();
newPlaylistItem.Snippet = new PlaylistItemSnippet();
newPlaylistItem.Snippet.PlaylistId = playlist.Id;
newPlaylistItem.Snippet.ResourceId = new ResourceId();
newPlaylistItem.Snippet.ResourceId.VideoId = existingPlaylistItem.Snippet.ResourceId.VideoId;
newPlaylistItem.Snippet.ResourceId.Kind = existingPlaylistItem.Snippet.ResourceId.Kind;
await youTubeService.PlaylistItems.Insert(newPlaylistItem, "snippet").ExecuteAsync();
Где newPlaylistItem
это элемент, я хочу, чтобы вставить и existingPlaylistItem
это существующий элемент из списка воспроизведения канала добавляется. Я просто копирую значения и изменяю идентификатор списка воспроизведения.
Кроме того, при использовании API-обозревателя на сайте документации Google Developers все работает нормально (используется веб-авторизация). В Google Developers Console у меня есть все API-интерфейсы. Может быть, проблема в том, что мне не хватает информации, необходимой для типа учетной записи службы? Может ли кто-нибудь помочь мне решить эту проблему?
Вот мой GitHub репозиторий с исходным кодом. Ошибка возникает по строке 235 по запросу.
Спасибо !. Я смотрел, хотя много документации, но пропустил это. – GaaRa