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

Google Scripts处理Google Forms如何获取题目内嵌的图片及媒体资源

解决方案

首先明确:谷歌表单官方的FormApp基础服务目前没有暴露题目内嵌媒体的读写接口,你可以通过启用高级Google Forms服务实现需求,不需要将媒体和题目拆分为两个独立条目,具体实现步骤如下:

1. 启用高级服务

打开你的脚本编辑器,在左侧菜单栏点击「服务」,找到「Google Forms API」,点击添加即可启用。

提示:高级Google Forms服务是谷歌官方对Form REST API的封装,不需要额外申请开发者密钥,只要在脚本内启用即可使用,无额外使用成本。

2. 代码改造示例

你可以参考如下逻辑修改原有代码,以多选题为例:

// 先获取表单B的ID,用Forms API拉取所有题目的完整信息(包含内嵌媒体)
const formBId = "你的表单B的ID";
const formBFullInfo = Forms.Forms.get(formBId, {fields: "items"});
const formBItemsMap = {};
// 把表单B的条目ID和完整信息做映射,方便后续匹配
formBFullInfo.items.forEach(item => {
  formBItemsMap[item.itemId] = item;
});

for (var i = 0; i < questions.length; i++){ 
    var q = questions[i];
    var type = q.getType().toString();
    // 拿到当前题目的API侧完整信息
    const qFullInfo = formBItemsMap[q.getId()];
    
    if (type == FormApp.ItemType.MULTIPLE_CHOICE){
      var qEl = q.asMultipleChoiceItem();
      var item = form.addMultipleChoiceItem(); 
      
      // 原有属性设置逻辑保留
      item.setTitle(qEl.getTitle())
        .setChoices(qEl.getChoices())
        .setRequired(qEl.isRequired())
        .showOtherOption(qEl.hasOtherOption())
        .setHelpText(qEl.getHelpText());
        
      // 新增:判断是否有内嵌媒体,有就绑定到新题目
      if (qFullInfo.mediaItem) {
        const newItemId = item.getId();
        // 调用Forms API更新新题目,绑定媒体资源
        Forms.Forms.batchUpdate({
          requests: [{
            updateItem: {
              itemId: newItemId,
              item: {
                mediaItem: qFullInfo.mediaItem
              },
              updateMask: "mediaItem"
            }
          }]
        }, form.getId()); // form是你的表单A实例
      }
    }
    // 其他题型的处理逻辑同理,都可以复用上面的媒体绑定代码
}

注意事项

  • 操作账号需要同时拥有表单A和表单B的编辑权限,才能正常访问和复制媒体资源
  • 视频类内嵌资源的绑定逻辑和图片完全一致,不需要额外调整代码
  • 如果不想启用高级服务,暂时没有其他原生方案,只能暂时使用你提到的拆分媒体条目和题目的替代方案

内容的提问来源于stack exchange,提问作者Piero Impicciatore

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.17 06:54:03