我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'};
}
答案 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?