设置 Apps 脚本项目以通过 REST 调用直接调用 Google Forms API 非常简单。假设您已配置 Google Cloud 项目,请执行以下操作:
- 新建 Apps 脚本项目。
- 将关联的 Google Cloud 项目编号更改为与您为 Google Forms API 启用的项目相匹配。
- 修改清单文件 (
appsscript.json),以添加必要的 OAuth 范围。 - 添加 Apps 脚本代码以获取 OAuth 令牌,并使用该令牌发出 REST 调用。
下面简要介绍一下这些步骤。
创建和配置新的 Apps 脚本项目
- 使用您配置 GCP 项目时所用的同一 Google ID,前往 Apps 脚本信息中心,然后点击新项目。
- 打开项目后,点击 项目设置。
- 选中在编辑器中显示“appsscript.json”清单文件复选框。
- 在 Google Cloud Platform (GCP) 项目部分中,点击更改项目,然后输入您为 Forms API 配置的 GCP 项目编号。
您的 Apps 脚本项目现已配置为可以访问 Google Forms API。下一个必需的步骤是添加适当的 OAuth 范围。
添加 OAuth 范围
如需在 Apps 脚本中生成范围适当的 OAuth 令牌,您需要在项目的清单文件中设置所需的范围。
- 在编辑器中,打开
appsscript.json。 将相应范围添加到清单的正文中。
{ ... "oauthScopes": [ "https://www.googleapis.com/auth/script.external_request", "https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.readonly", "https://www.googleapis.com/auth/forms.body", "https://www.googleapis.com/auth/forms.body.readonly", "https://www.googleapis.com/auth/forms.responses.readonly" ], ... }点击 保存项目,并根据需要更正所有语法错误。现在,您的项目应该能够通过 REST 调用来调用 Google Forms API 了。
添加 Apps 脚本代码以调用 API
在编写用于调用表单的代码之前,您需要确定自己拥有的一个包含回答的表单,并记下其表单 ID。在修改表单时,您可以在网址中找到表单 ID:
https://docs.google.com/forms/d/<FORM_ID>/edit
如需调用该 API,您将使用 Apps 脚本 UrlFetchApp 调用。
打开 Code.gs 并添加以下代码:
将
YOUR_FORM_ID替换为您之前记下的值。示例:
var formId = 'tL5ygBC8zpbTnTp76JCZdIg80hA-cnpbTnTjnsewCKJH';点击 Save project(保存项目),并根据需要更正任何语法错误。
测试代码
- 点击 运行。
- 使用与之前相同的 Google ID 根据需要授权项目。
启动后,您应该会在执行日志中看到类似于以下内容的响应:
Execution started
Calling the Forms API!
OAuth token is: ya29.a0ARrdaM8IMjtlv…
formsAPIUrl is: https://forms.googleapis.com/v1beta/forms/…/responses
Response from Forms.responses was: {
"responses": [
{
"responseId":"...",
"createTime": "2021-03-25T01:23:58.146Z",
"lastSubmittedTime": "2021-03-25T01:23:58.146607Z",
"answers": {
"1e9b0ead": {
"questionId": "1e9b0ead",
"textAnswers": {
"answers": [
{
"value": "Red"
}
]
}
},
"773ed8f3": {
"questionId": "773ed8f3",
"textAnswers": {
"answers": [
{
"value": "Tesla"
}
]
}
}
}
}
]
}
Execution completed
后续步骤
使用 Apps 脚本成功调用 API 后,请参阅参考文档,并尝试对 API 进行其他调用。