我想创建一个应用,用户可以上传存储在设备上或使用相机录制的视频,并自动将其上传到我拥有的特定帐户中。问题是我正在尝试使用网络上的ytdirect教程,但是getting started tutorial并不是那么容易解释,而且对于(我认为)可能使用API更简单的东西来说真的很复杂。 / p>
我已经按照answer这个步骤,这似乎是一个更好或者更简单的方法来实现我正在寻找使用相同的YouTube Direct,但更换GlsAuthorizer.java与该答案中的ClientLoginAuthorizer.java在项目中给我一些错误(特别是onCreate上的SubmitActivity.java与GlsAuthorizer.GlsAuthorizerFactory())(1)。
我有Developer Key和App ID,以及与之关联的URL(xyz.appspot.com)。我不知道project(2)中strings.xml中的default_ytd_domain_name是什么。
还有其他方法可以在YouTube上传视频(包含我可以使用的教程或示例代码),或者有人使用上面的第二个链接有更详细的步骤来实现上传,因为我在答案的步骤中只丢失了两(2)分。
答案 0 :(得分: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;
}
}