HTTP 请求在 playground 上有效,但在 Google 应用脚本中无效
HTTP request works on playground doesn't in Google App scripts
我主要想通过 API 请求从 Google 云获取数据到电子表格。
我不是一个真正的编码员,只是一个试图自动化一切的分析师。对不起,如果这是一个愚蠢的问题或者不是最好的想法。无论如何,这就是问题所在。
我使用 https://developers.google.com/oauthplayground/ 看看我能从 google 云文件中得到什么,因为我对那里的文件只有只读访问权限。有 Google 播放数据,我想以某种方式自动报告。
我授权 API 使用“https://www.googleapis.com/auth/devstorage.read_only”范围,然后通过 'Exchange authorization code for tokens' 然后我可以同时查看元数据和文件本身:
这给了我元数据:
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');
奇怪的是我完全可以获取元数据,但是当我尝试获取数据本身时出现错误
"Request failed for https://www.googleapis.com returned code 403.
Truncated server response: "Project 10000000000000 is not found and
cannot be used for API calls. If it is recently created, enable Cloud
Storage JSON API by visiting https://c..."
但是我怎样才能通过 API 调用查看元数据呢?
我测试的另一件事 - 我从操场上获取了访问令牌而不是函数,然后一切正常。但我真的想让它自动进行。是关于范围的吗?但是不知道是什么。
403
通常意味着您没有启用所需的 api。
要在默认 GCP 项目中启用 API(在高级 Google 服务中不可用),您需要
- Switch to standard GCP
- 为此项目启用所需的API here(在菜单中明确将项目更改为当前项目)。
我主要想通过 API 请求从 Google 云获取数据到电子表格。
我不是一个真正的编码员,只是一个试图自动化一切的分析师。对不起,如果这是一个愚蠢的问题或者不是最好的想法。无论如何,这就是问题所在。
我使用 https://developers.google.com/oauthplayground/ 看看我能从 google 云文件中得到什么,因为我对那里的文件只有只读访问权限。有 Google 播放数据,我想以某种方式自动报告。
我授权 API 使用“https://www.googleapis.com/auth/devstorage.read_only”范围,然后通过 'Exchange authorization code for tokens' 然后我可以同时查看元数据和文件本身:
这给了我元数据:
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');
奇怪的是我完全可以获取元数据,但是当我尝试获取数据本身时出现错误
"Request failed for https://www.googleapis.com returned code 403. Truncated server response: "Project 10000000000000 is not found and cannot be used for API calls. If it is recently created, enable Cloud Storage JSON API by visiting https://c..."
但是我怎样才能通过 API 调用查看元数据呢?
我测试的另一件事 - 我从操场上获取了访问令牌而不是函数,然后一切正常。但我真的想让它自动进行。是关于范围的吗?但是不知道是什么。
403
通常意味着您没有启用所需的 api。
要在默认 GCP 项目中启用 API(在高级 Google 服务中不可用),您需要
- Switch to standard GCP
- 为此项目启用所需的API here(在菜单中明确将项目更改为当前项目)。