2013-01-06 157 views
1

我是一位經驗豐富的.NET開發人員,我正在製作視頻上傳應用程序,只需要使用2或3個帳戶。使用1個帳戶作爲我的測試用例,我已經授權我的應用程序,取回我的授權密鑰,現在我有一個訪問+刷新令牌。如何使用OAuth2訪問令牌(.NET)通過API上傳Youtube視頻?

進入這個階段我現在意識到我不知道如何用我的訪問令牌上傳一個視頻(我知道我可能需要刷新它,直到這個答案) - 任何人都可以幫忙嗎?我找不到任何有關使用Youtube .NET客戶端庫(例如YouTubeRequestSettings,YouTubeRequest等)的文檔來做到這一點 - 所有這些都非常感謝!

+1

你是否做了谷歌搜索..?有一個例子在那裏如何做到這一點..你需要 你想要做什麼需要使用異步上傳。展示如何使用ResumableUploader組件和AsyncOperationCompleted/AsyncOperationProgress事件的完整示例包含在.NET客戶端庫中,並可在http://code.google.com/p/google-gdata/source/browse/#svn% 2Ftrunk%2Fclients%2Fcs%2Fsamples%2FYouTubeUploader%2FYouTubeUploader – MethodMan

+0

@DJKRAZE - 令人印象深刻的是,您嘗試同時兼顧幫助和侮辱 - 該鏈接不會在任何地方使用OAuth密鑰,只要看看最後一頁方法,它使用Youtube帳戶的用戶名和密碼 - 這是違背推薦的最佳做法(因此我試圖使用OAuth!) 如果你願意爲我刪除你的投票,我可能會得到更多關注我的問題 – hc289

回答

2

我最終通過試驗和錯誤發現了這一點 - 脫節的Youtube API文檔確實沒有什麼幫助!

AuthSub已棄用,如果您經歷了獲取OAuth2密鑰的麻煩(在文檔中有相當詳細的描述),您可以使用它來上傳視頻。

這樣做只是使用替代的AuthSub鍵中的access_token的「YoutubeRequestSettings」對象 - 如下面的示例所示:

string myDeveloperKey = "Your developer key here"; 
string myOAuthKey = "The OAuth key for the target user's account here"; 

YouTubeRequestSettings settings = new YouTubeRequestSettings("My Uploader App Name", myDeveloperKey, myOAuthKey); // The documentation for this method implies it only accepts an authSub key - it works if you pass your OAuth key 

YouTubeRequest request = new YouTubeRequest(settings); 

Video newVideo = new Video(); 

newVideo.Title = "Test Video - ignore me"; 
newVideo.Tags.Add(new MediaCategory("Autos", YouTubeNameTable.CategorySchema)); 
newVideo.Keywords = "test 1 , test 2"; 

newVideo.Description = "test 3 test 4"; 
newVideo.YouTubeEntry.Private = false; 

newVideo.Tags.Add(new MediaCategory("tag 1, tag 2", YouTubeNameTable.DeveloperTagSchema)); 
newVideo.Private = true; // Make this video private as it's a test 

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

newVideo.YouTubeEntry.MediaSource = new MediaFileSource(@"C:\MyTestVideo.mov", "video/quicktime"); 

Video createdVideo = request.Upload(newVideo);   
相關問題