Apps Script& Oauth2& Youtube API v3

时间:2013-10-16 16:13:29

标签: google-apps-script youtube-api oauth-2.0 google-oauth

This script使用Oauth和YTB API v2列出了我最喜欢的youtube视频。

现在我想对YTB DATA API V3做同样的事情,谁知道一个简单的步骤就是YTB ANALYTICS API V1。

所以我正在寻找可以让我收到V3中收藏夹的网址 var URL = "https://www.googleapis.com/youtube/v3/"
而不是 //var URL = "http://gdata.youtube.com/feeds/api/users/default/favorites?v=2";

使用DATA API v3有没有办法做到这一点? 或者只能使用API​​ KEY获取带有长URL请求的简单数据,如@Arun Nagarajan的github example所示 var url = 'https://www.googleapis.com/youtube/v3/activities?' +'part=snippet&channelId=UC_x5XG1OV2P6uZZ5FSM9Ttw&maxResults=20&publishedBefore=2013-02-25T00:00:00.0Z' +'&key='+API_KEY;

以下是我希望与YTB API v3一起使用的代码部分。

//var URL = "http://gdata.youtube.com/feeds/api/users/default/favorites?v=2"; works
var URL = "https://www.googleapis.com/youtube/v3/" // cant find it
function getFavoriteVideos() 
{
 var data = UrlFetchApp.fetch(URL, googleOAuth_()).getContentText(); 
 var xmlOutput = Xml.parse(data, false);  
 var favorites = xmlOutput.getElement().getElements('entry');  
 Logger.log("a" + favorites.length.toString())
 var a = favorites.length.toString()
 for(var i = 0; i < favorites.length; i++)
 {
   favorites[i].getElement('title').getText()
   Logger.log(favorites[i].getElement('title').getText())
 }
}

身份验证

var NAME = 'youtube';
var SCOPE = 'http://gdata.youtube.com';

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'};
}

1 个答案:

答案 0 :(得分:2)

使用oAuthConfig类的问题在于它基于oAuth1而不是oAuth2。

Google-Apps-Scirpt-Issues中有一项要求升级到oAuth2: https://code.google.com/p/google-apps-script-issues/issues/detail?id=2580

我最初忘了提到在SO中使用oAuth2和GAS的帖子,Arun在他的回复中,发布了他在GitHub中提供的示例的引用:How to authorize with oauth 2.0 from appscript to Google APIs?