1

我想创建一个应用程序,用户可以上传存储在设备上或用相机录制的视频,并自动将其上传到我拥有的特定帐户中。问题是我正在尝试通过网络使用 ytdirect 教程,但是入门教程并不是那么容易解释,而且对于(我认为)必须更简单的东西(我认为)可能使用 API 更简单。

我在这个答案上遵循了这个步骤,这似乎是一种更好或至少更简单的方法来实现我正在寻找的使用相同的 YouTube Direct,但是在那个答案中用 ClientLoginAuthorizer.java 替换 GlsAuthorizer.java 是在项目中给我一些错误(特别是在使用 GlsAuthorizer.GlsAuthorizerFactory() 的 onCreate 上的 SubmitActivity.java 中)(1)。

我有开发者密钥和应用程序 ID,以及与之关联的 URL (xyz.appspot.com)。我不知道项目(2) 中 strings.xml 中的 default_ytd_domain_name 是什么。

还有其他方法可以在 YouTube 中上传视频(带有我可以使用的教程或示例代码),或者有人有更详细的步骤序列可以使用上面的第二个链接实现上传,因为我只是错过了该答案步骤中的两 (2) 点。

4

1 回答 1

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

    }
于 2015-03-29T16:09:35.193 回答