查询YouTube Analytics API .NET

时间:2015-05-19 23:14:38

标签: api http-status-code-403 youtube-analytics-api

我已经阅读了大多数开发人员控制台参考资料。

  1. 我已在Google Developers Console中的" YouTube Manager Google帐户" YouTube网站。
  2. 我已启用YouTube Data API v3和YouTube Analytics v1。
  3. 我已为已安装的项目创建了凭证。
  4. 代码验证没有问题:

    
    
    UserCredential credential;
                using (var stream = new FileStream(hds_opo_youtube_service.Properties.Settings.Default.clientIDFile, FileMode.Open, FileAccess.Read))
                {
                    credential = await GoogleWebAuthorizationBroker.AuthorizeAsync(
                        GoogleClientSecrets.Load(stream).Secrets,
                        // This OAuth 2.0 access scope allows for read-only access to the authenticated 
                        // user's account, but not other types of account access.
                        new[] { YouTubeService.Scope.YoutubeReadonly,
                                YouTubeAnalyticsService.Scope.YtAnalyticsReadonly},
                        "user",
                        CancellationToken.None,
                        new FileDataStore(this.GetType().ToString())
                    );
                }
    
                var youtubeService = new YouTubeService(new BaseClientService.Initializer()
                {
                    HttpClientInitializer = credential,
                    ApplicationName = this.GetType().ToString()
                });
    
    
    
 我可以使用youtube数据API从一个特定的播放列表中获取视频列表。然后,我创建了一个youtube分析服务,并尝试查询视图数据。那是我得到的:

      

    发生错误:Google.Apis.Requests.RequestError Forbidden [403]   错误[           消息[禁止]           地点[ - ]           原因[禁止]           域[全球]   ]

    我尝试使用API​​ Explorer解决问题。这非常有帮助。当我尝试使用YouTube管理员所有者个人资料帐户进行身份验证时。查询失败。但是,如果我使用不同的Google+信息页帐户,我可以让查询生效。 Google+信息页帐户有一个电子邮件帐户,但与Google+信息页帐户的所有通信都会定向到经理所有者个人资料帐户。因此,我尝试将Google+信息页帐户添加到项目权限中,但无法确认该链接。我认为我的问题是YouTube频道属于Google+信息页帐户。分配的经理所有者拥有不同的帐户,即个人帐户,即使它是YouTube帐户的管理员。我知道这听起来真的很混乱。有没有人对如何解决问题有任何想法。感谢

1 个答案:

答案 0 :(得分:1)

好吧,我想我会回答我自己的问题。 YouTube频道与Google+商家页面相关联。此页面完全不是Google帐户。它有一个自动生成的电子邮件,但它不是一个真正的电子邮件帐户。所有者经理是Google +个人资料帐户。在创建我的应用程序之前,我并不理解这种区别,所以当我最初尝试进行身份验证时,我在对Google+信息页或Google+个人资料进行身份验证时进行了选择。我选择了Google+个人资料,认为它是YouTube频道的所有者。然后,所有后续身份验证都使用存储的刷新令牌,并且不再询问两个Google +帐户中的哪一个进行身份验证。与此同时,我使用了API Explorer,并意识到我需要对Google+信息页进行身份验证。所以我删除了存储的刷新令牌,然后再次运行代码。它让我选择了两个帐户。我选择了Google+信息页和youtube分析查询。