【问题标题】:HTTP request works on playground doesn't in Google App scriptsHTTP 请求在 Playground 上工作不适用于 Google App 脚本
【发布时间】:2019-10-02 12:24:14
【问题描述】:

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

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

我使用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 调用。如果是最近创建的,请启用 Cloud 存储 JSON API 通过访问https://c..."

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

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

【问题讨论】:

  • 你是否启用了错误信息中写的api?
  • 好吧,我不能,因为我没有那种级别的数据访问权限。但是为什么它对某些 API 请求有效,但当我尝试使用应用脚本时却无效?
  • 你在说什么数据? 1.在控制台中新建一个项目。 2. 在脚本编辑器中,资源> 更改项目> 将项目更改为您刚刚创建的项目。 3. 再次访问控制台为“这个项目”启用云存储api。 console.developers.google.com/apis/library
  • Oauthplayground 仅用于测试。如果您要制作自己的脚本来运行它,您应该像@TheMaster 提到的那样创建自己的项目。
  • 哇。我没有想过尝试这样的事情,但它奏效了。我想知道它以前试图通过什么项目来做到这一点?无论如何。非常感谢。这对我帮助很大。另外,我想我不能赞成评论或将其标记为解决方案。

标签: google-apps-script oauth-2.0 google-cloud-storage http-status-code-403 google-developers-console


【解决方案1】:

403

通常意味着您没有启用所需的 api。

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

【讨论】:

    猜你喜欢
    • 2014-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多