2012-07-11 65 views
1

我想創建一個應用程序,用戶可以上傳存儲在設備上或用相機錄製的視頻,並自動將其上傳到我擁有的特定帳戶中。問題是我正在嘗試通過網絡上的ytdirect教程,但getting started tutorial並不是那麼簡單的解釋,並且對於我認爲必須更簡單的API來說,它確實很複雜。在特定的YouTube帳戶上傳視頻 - Android

我在這answer上按照這個步驟,這似乎是一個更好或至少簡單的方法來實現我正在尋找使用相同的YouTube直播,但用ClientLoginAuthorizer.java替換GlsAuthorizer.java在那個答案中,我在項目中拋出了一些錯誤(特別是在使用GlsAuthorizer.GlsAuthorizerFactory())的onCreate上的SubmitActivity.java(1))。

我擁有開發人員密鑰和應用程序ID以及與其關聯的網址(xyz.appspot.com)。我不知道位於project(2)的strings.xml中的default_ytd_domain_name是什麼。

在YouTube上有其他方式上傳視頻(可以使用教程或示例代碼),或者有人使用上述第二個鏈接獲取上傳的更詳細的步驟順序,因爲我只是在該答案的步驟中錯過了兩點(2)。

回答

0

我這樣做是爲了獲得一個新的訪問令牌,如果它已經過期。然後我將它傳遞迴客戶端,並使用此令牌進行上傳。

getYoutubeToken: function() { 

     var now = moment(); 
     var result; 
     if (now.diff(Meteor.settings.youtube.expiration, 'minutes') >= 50) { 
      console.log('Getting new access token...') 

      var options = { 
       headers: { 
        "Content-Type": "application/x-www-form-urlencoded" 
       }, 
       content: "client_secret=" + Meteor.settings.youtube.client_secret + "&grant_type=refresh_token&refresh_token=" + Meteor.settings.youtube.refresh_token + "&client_id=" + Meteor.settings.youtube.client_id 
      } 

      try { 
       result = HTTP.call("POST", 'https://www.googleapis.com/oauth2/v3/token', options); 
       Meteor.settings.youtube.access_token = result.data.access_token; 
       Meteor.settings.youtube.expiration = moment(); 

       return Meteor.settings.youtube.access_token; 
      } catch (e) { 
       // Got a network error, time-out or HTTP error in the 400 or 500 range. 
       return false; 
      } 


     } else { 
      console.log('Returning access token...') 
      return Meteor.settings.youtube.access_token; 
     } 

    }