首页 > 解决方案 > HTTP 请求在 Playground 上工作不适用于 Google App 脚本

问题描述

我想通过 API 请求从谷歌云获取数据,基本上是电子表格。

我不是一个真正的编码员,只是一个试图自动化一切的分析师。抱歉,如果这是一个愚蠢的问题,或者一开始就不是最好的主意。无论如何,这就是问题所在。

我使用https://developers.google.com/oauthplayground/看看我能从谷歌云文件中得到什么,因为我只是只读访问那里的文件。我想以某种方式获得自动报告的 Google Play 数据。

我使用“ https://www.googleapis.com/auth/devstorage.read_only ”范围授权 API ,然后通过“交换令牌授权代码”,然后我可以查看元数据和文件本身:这给了我元数据:
https ://www.googleapis.com/storage/v1/b/pubsite_prod_rev_0000000000000000/o/reviews%2Freviews_com.appid_201909.csv

添加“?generation=1569963312859248&alt=media”向我展示了csv的内容。

我想让它自动将数据放到最简单的地方,似乎把它放到电子表格中。所以我在 Google App 脚本中编写了一些代码。代码如下。我也在清单文件中添加了范围。

var token = ScriptApp.getOAuthToken();
var options = {};
  options.headers = {"Authorization": "Bearer "+token};
  var links = UrlFetchApp.fetch("https://www.googleapis.com/storage/v1/b/pubsite_prod_rev_0000000000000000/o/reviews%2Freviews_com.appid_201909.csv?generation=1569963312859248&alt=media" , options);
  var data =  links.getBlob().getDataAsString('utf-16le');

奇怪的是我可以完全正确地获取元数据,但是当我尝试获取数据本身时出现错误

“对https://www.googleapis.com的请求失败,返回代码 403。截断的服务器响应:“项目 10000000000000 未找到,不能用于 API 调用。如果是最近创建的,请访问https://c ...启用 Cloud Storage JSON API

但是我怎样才能通过我的 API 调用来查看元数据呢?

我测试的另一件事-我从操场上获取了访问令牌,而不是函数,然后一切正常。但我真的想让这个自动化。是关于范围的吗?但我不知道是什么。

标签: google-apps-scriptoauth-2.0google-cloud-storagehttp-status-code-403google-developers-console

解决方案


403

通常意味着您尚未启用所需的 api。

要在默认 GCP 项目中启用 API(高级 Google 服务中不可用),您需要


推荐阅读