0

Apps 脚本不断通过 Youtube 的 API 请求离线许可

在 Google Apps 脚本中,禁止访问 YouTube Reporting API

这些是非常相似的问题,但是,我以所有者身份登录。该脚本位于所有者的驱动器中。

我的问题

我一直在尝试使用 GAS(Google Apps 脚本)从内容所有者那里访问 YouTube 分析报告。有两个帐户,一个品牌帐户(保存数据,即视频内容)和一个用户帐户。他们都使用相同的凭据(电子邮件和密码)。以用户身份授权时,我得到一个 403(禁止)。作为品牌授权时,我被要求一次又一次地授权离线访问,使我无法提出请求。

我试过的...

  • 从 Node 运行,使用 OAUTH Playground 令牌,它可以工作。但我需要坚持使用 GAS。
  • 使用google-script-oauth2 : 对凭据进行硬编码(类似于 Node 解决方案),但我无法设置刷新令牌。我收到了 401(无效凭据) - 我相信不记名令牌已过期
  • 设置凭据并启用 youtube 和 youtube 分析 API
  • 废弃旧凭证并将新项目附加到 GAS
  • 删除隐私设置中的身份验证并重新进行身份验证
  • 切换使用不安全脚本选项并重复步骤 3
  • 在 ids 参数的 contentOwner 和通道参数之间切换
  • 注意:我有两个 OAUTH2 凭据应用程序脚本,并且Web 客户端都设置为 Web 应用程序。

气体代码

function test(){
   YouTubeAnalytics.Reports.query("contentOwner==id", "2017-03-01", "2017-03-31", "likes");
}

最后的想法

我相信品牌和用户之间存在脱节,因此品牌无法获得对 OAUTH 2 令牌的相同访问权限。因此,它永远不会生成刷新令牌。因此,请求看到我是授权频道所有者,但它无法完成 OAUTH 流程。

如果这是真的,为什么,我该如何解决?如果不是,您认为可能是什么错误?

我刚刚意识到脚本在用户帐户中,而不是品牌帐户中。会影响验证吗?

同样在实际频道上,用户被列为主要所有者。

4

1 回答 1

0

我认为问题与 Apps Script 有限的 OAuth 范围有关。打开脚本编辑器并导航到资源->高级 Google 服务,您会看到不支持 YouTube 的报告 API。但是,您可以使用服务帐户解决此问题。设置它们很麻烦,但是一旦启动并运行它们,您就可以明确地请求从 GAS 对 API 进行授权调用所需的范围。

以下是一些帮助您入门的链接:

将 OAuth 2.0 用于服务器到服务器应用程序

适用于 Google API 的 OAuth 2.0 范围

对于将 OAuth 2.0 用于服务器到服务器应用程序,您需要向下滚动到标题为准备进行授权 API 调用的部分。选择 HTTP/REST 选项卡,它应该会引导您完成设置服务帐户所需的步骤(您需要从 Google 控制台创建 JWT - J SON Web T oken以用于 API 调用) . 您还需要从提供的第二个链接中检索 YouTube 报告 API 所需的 OAuth 范围 URL。完成所有设置后,您就可以使用 URLFetchApp 直接从 Apps 脚本向 API 发出请求。祝你的项目好运。

还有一件事。查看Google 的 API Explorer 列表中的 YouTube Reporting API。您可以通过使用 Explorer 来获取您需要在 UrlFetchApp 调用中使用的 URL 端点(和请求方法)。


2017 年 4 月 28 日更新

还要确保从您的Google API 控制台启用 YouTube 报告 API 。

于 2017-04-27T23:42:41.087 回答