0

私は以下を作りました

var NAME = 'youtube';
var SCOPE = 'http://gdata.youtube.com';
//var URL = "https://picasaweb.google.com/data/feed/api/user/default";
var URL = "http://gdata.youtube.com/feeds/api/users/default/favorites?v=2";

function doGet(e) {
  var app = UiApp.createApplication().setTitle("youtube");
  var data = UrlFetchApp.fetch(URL, googleOAuth_()).getContentText(); 
  var xmlOutput = Xml.parse(data, false);  
  var favorites = xmlOutput.getElement().getElements('entry');  

  app.add(app.createLabel(favorites.length.toString()))
  for(var i = 0; i < favorites.length; i++){
  app.add(app.createLabel(favorites[i].getElement('title').getText()))
  //var testf = favorites[i].getElement('http://gdata.youtube.com/schemas/2007#favorite','href');
}

return app;
}   

function googleOAuth_() {
var oAuthConfig = UrlFetchApp.addOAuthService(NAME);
 oAuthConfig.setRequestTokenUrl('https://www.google.com/accounts/OAuthGetRequestToken?scope='+SCOPE);
 oAuthConfig.setAuthorizationUrl('https://www.google.com/accounts/OAuthAuthorizeToken');
 oAuthConfig.setAccessTokenUrl('https://www.google.com/accounts/OAuthGetAccessToken');
 oAuthConfig.setConsumerKey('anonymous');
 oAuthConfig.setConsumerSecret('anonymous');
 return {oAuthServiceName:NAME, oAuthUseToken:'always'};
}

お気に入りの動画のタイトルを取得するには問題なく動作
しますが、お気に入りの動画の URL にアクセスする方法がわかりません。
ドキュメントのどこでそれを見つけることができますか?

別の質問よりも、
別の Google アカウントでスクリプトを実行しようとすると、まだエラーが発生します:
そのアクションを実行するには承認が必要です

関数はgoogleOAuth_()それを処理していませんか?

4

1 に答える 1

1

ここに実用的なソリューションがあります...

(編集:より良いコード)

var NAME = 'youtube';
var SCOPE = 'http://gdata.youtube.com';
//var URL = "https://picasaweb.google.com/data/feed/api/user/default";
var URL = "http://gdata.youtube.com/feeds/api/users/default/favorites?v=2";

function doGet(e) {
    var app = UiApp.createApplication().setTitle("youtube").setStyleAttribute('padding','20');
    var data = UrlFetchApp.fetch(URL, googleOAuth_()).getContentText(); 
    var xmlOutput = Xml.parse(data, true);  
    var favorites = xmlOutput.getElement().getElements('entry');  
    app.add(app.createLabel('YouTube favourites entries : '+favorites.length.toString()).setStyleAttribute('padding','10'))
    var table = app.createFlexTable().setWidth('400').setStyleAttribute('background', '#ffffdd')

  for(var i = 0; i < favorites.length; i++){

      if(favorites[i].getElement('link')){  
      var url = favorites[i].getElement('link').getAttribute('href').getValue();}

      if(favorites[i].getElement('title')){
       var Title = favorites[i].getElement('title').getText()}

      table.setText(i, 0, 'Clip Title : '+Title).setWidget(i, 1, app.createAnchor('link', url)).setBorderWidth(1)  
    }
    app.add(table)
 return app;
} 
于 2013-01-07T14:35:17.200 に答える