Youtube API V3 身份验证.上传到共享帐户



我正在尝试使用 C# 更新现有的 Asp.Net 应用程序,以避免弃用 Youtube V2 API。 第一个挑战是弄清楚如何使用新的 API 进行身份验证。

以下是应用程序当前进行身份验证的方式:

    string developerKey = (My Developer Key here);
    string username = (My username here);
    string password = (My password here);
    ytService = new YouTubeService("SampleApplication", developerKey);
    ytService.setUserCredentials(username, password);

我已经研究并查看了 V3 API 示例,它们都使用 OAuth2 进行身份验证,如下所示:

        UserCredential credential;
        using (var stream = new FileStream("client_secrets.json", FileMode.Open, FileAccess.Read))
        {
            credential = await GoogleWebAuthorizationBroker.AuthorizeAsync(
                GoogleClientSecrets.Load(stream).Secrets,
                // This OAuth 2.0 access scope allows an application to upload files to the
                // authenticated user's YouTube channel, but doesn't allow other types of access.
                new[] { YouTubeService.Scope.YoutubeUpload },
                "user",
                CancellationToken.None
            );
        }

但是,这会提示用户登录到自己的Google帐户,对于此应用程序,我们希望所有上传的视频都进入我们的帐户。 因此,如果可能的话,我想继续使用公共 API 访问,但我找不到任何 V3 API 的示例。

我还调查了OAuth2服务帐户,但是对于我的生活,我无法弄清楚如何使用其中一个进行身份验证。

你能帮我指出正确的方向吗?

我最近遇到了类似的问题,除了我使用的是共享Google Calendar而不是Youtube帐户。 我最终做的是添加一个只有我才能看到的authorize按钮,单击时该按钮与初始授权请求挂钩。 它从Google打开弹出窗口,我从共享帐户授予权限,并将返回的访问令牌、刷新令牌和到期日期存储在数据库中。

然后,

每当用户需要查看共享日历时,我只有逻辑说如果过期日期已过,使用存储的刷新令牌请求新的访问令牌并重置到期日期,然后我使用访问令牌进行Google Calendar API 调用(在本例中获取事件列表)。

遗憾的是,YouTube API 的 V3 不支持服务帐号,oAuth2 是唯一的身份验证方法。

这背后的原因之一是取消将多个人上传到一个帐户; 法律责任(对于YouTube和应用程序开发人员)太大了。目前唯一的替代方案是 YouTube 直接精简版程序(它有多个客户端......请参阅YouTube的Github页面以找到它们),它为您提供了一个简单的管理/管理窗格,用于根据用户将视频上传到自己的帐户自动生成播放列表(换句话说,他们通过您的应用程序将视频上传到他们的帐户,但您的帐户会记录它并管理列表中可以/不能显示的内容)。

相关内容

  • 没有找到相关文章

最新更新