2015-10-17 2 views
0

Я получил эту приведенную ниже ошибку, после того, как видео тест загрузки на YouTubeЗагрузить видео к Youtube с C# ASP .NET MVC

{"The remote server returned an error: (401) Unauthorized."} 

Я не знаю, что случилось с моим кодом ...

YouTubeRequestSettings settings = new YouTubeRequestSettings("VideoToYoutube", "AIzaSyBiXxL5nS6IjYRGJUhDdaYdWGqAGwOvD8A"); 

      YouTubeRequest request = new YouTubeRequest(settings); 

      Video newVideo = new Video(); 

      newVideo.Title = "Teste"; 
      newVideo.Tags.Add(new MediaCategory("teste", YouTubeNameTable.CategorySchema)); 
      newVideo.Keywords = "Teste"; 
      newVideo.Description = "Teste"; 
      newVideo.YouTubeEntry.Private = false; 
      newVideo.Tags.Add(new MediaCategory("teste, teste", 
       YouTubeNameTable.DeveloperTagSchema)); 

      newVideo.YouTubeEntry.Location = new GeoRssWhere(37, -122); 


      newVideo.YouTubeEntry.MediaSource = new MediaFileSource("C:\\Users\\tadriano\\Documents\\streaming\\mov_bbb.mp4", "video/mp4"); 

       var createdVideo = request.Upload(newVideo); 

      return View(); 
     } 

Я добавил * localhost *, 127.0.0.1 и * как принятые HTTP-ссылки в моей конфигурации.

Может ли кто-нибудь мне помочь?

+1

Вы вошли в систему с помощью API, прежде чем пытаться? 401 просто говорит вам, что сайт не знает, кто вы, поэтому он не выполнит ваш запрос. Ключ API находится именно там, поэтому сам API знает, кто звонит. – Reisclef

+0

Я зарегистрировался, прежде чем попытался, и теперь я воссоздаю и ничего: / –

ответ

0

Я решил это с помощью приведенного ниже кода и создал один ключ Api OAuth 2 с устройством типа приложения.

public static Google.Apis.YouTube.v3.YouTubeService AuthenticateOaut(string clientId, string clientSecret, string userName) 
     { 

      string[] scopes = new string[] { Google.Apis.YouTube.v3.YouTubeService.Scope.Youtube, // view and manage your YouTube account 
              Google.Apis.YouTube.v3.YouTubeService.Scope.YoutubeForceSsl, 
              Google.Apis.YouTube.v3.YouTubeService.Scope.Youtubepartner, 
              Google.Apis.YouTube.v3.YouTubeService.Scope.YoutubepartnerChannelAudit, 
              Google.Apis.YouTube.v3.YouTubeService.Scope.YoutubeReadonly, 
              Google.Apis.YouTube.v3.YouTubeService.Scope.YoutubeUpload}; 

      try 
      { 
       // here is where we Request the user to give us access, or use the Refresh Token that was previously stored in %AppData% 
       UserCredential credential = GoogleWebAuthorizationBroker.AuthorizeAsync(new ClientSecrets { ClientId = clientId, ClientSecret = clientSecret } 
                          , scopes 
                          , userName 
                          , CancellationToken.None 
                          , new FileDataStore("Daimto.YouTube.Auth.Store")).Result; 

       Google.Apis.YouTube.v3.YouTubeService service = new Google.Apis.YouTube.v3.YouTubeService(new Google.Apis.YouTube.v3.YouTubeService.Initializer() 
       { 
        HttpClientInitializer = credential, 
        ApplicationName = "Web client 1", 

       }); 
       return service; 
      } 
      catch (Exception ex) 
      { 
       Console.WriteLine(ex.InnerException); 
       return null; 

      } 

     } 
Смежные вопросы