You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无需OAuth,如何获取自身拥有的Google Form的JSON响应对象?

解决方案:无需OAuth获取自有Google Form的结构化JSON

方法1:用Google Apps Script导出目标格式JSON

作为表单所有者,你可以通过Apps Script直接读取表单结构,生成完全符合你需求的JSON:

  1. 打开目标Google Form,点击右上角「扩展程序」→「Apps Script」
  2. 替换默认代码为以下脚本:
function exportFormAsJSON() {
  const form = FormApp.getActiveForm();
  const formId = form.getId();
  const info = {
    title: form.getTitle(),
    description: form.getDescription(),
    documentTitle: form.getTitle()
  };
  const settings = {
    quizSettings: {
      isQuiz: form.isQuiz()
    }
  };
  const revisionId = form.getVersion().toString().padStart(8, '0');
  const responderUri = form.getPublishedUrl();
  
  const items = form.getItems().map(item => {
    const itemObj = { itemId: item.getId() };
    
    // 处理图片项
    if (item.getType() === FormApp.ItemType.IMAGE) {
      const imageItem = item.asImageItem();
      itemObj.imageItem = {
        image: {
          contentUri: imageItem.getImage().getUrl(),
          properties: { alignment: "LEFT" }
        }
      };
    }
    // 处理单选问题
    else if (item.getType() === FormApp.ItemType.MULTIPLE_CHOICE) {
      const questionItem = item.asMultipleChoiceItem();
      itemObj.title = questionItem.getTitle();
      itemObj.questionItem = {
        question: {
          questionId: questionItem.getId(),
          choiceQuestion: {
            type: "RADIO",
            options: questionItem.getChoices().map(choice => ({ value: choice.getValue() }))
          }
        }
      };
    }
    // 可扩展支持复选框、文本框等其他类型
    return itemObj;
  });
  
  const formJSON = {
    formId,
    info,
    settings,
    revisionId,
    responderUri,
    items
  };
  
  // 输出到日志查看,或部署为Web应用直接获取JSON
  console.log(JSON.stringify(formJSON, null, 2));
  
  // 可选:部署为Web应用后,访问URL即可拿到JSON响应
  return ContentService.createTextOutput(JSON.stringify(formJSON, null, 2))
    .setMimeType(ContentService.MimeType.JSON);
}
  1. 点击「运行」,首次运行需完成简单授权(仅针对你的表单,安全可控)
  2. 运行后,通过「查看」→「日志」获取JSON;或部署为Web应用,直接通过URL调用获取结构化数据

方法2:手动解析表单HTML(应急方案)

如果不想用Apps Script,可从页面源码提取结构化数据:

  • 打开表单页面,右键「查看页面源代码」
  • 搜索FB_PUBLIC_LOAD_DATA_,该变量包含表单的核心结构化数据(虽非标准API格式,但可提取所需字段)
  • 用Python/Node.js编写简单脚本,将该变量内容转换为你需要的JSON结构

关于API密钥的限制说明

新Google Forms API明确规定:API密钥仅支持提交表单响应的请求,读取表单结构必须使用OAuth 2.0认证,这是官方权限限制,没有绕过途径。

内容的提问来源于stack exchange,提问作者Andrea Fletcher

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 03:25:31