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

Unity应用向Google Form提交响应遇401未授权错误求助

Unity向Google Form提交返回401未授权的解决方案
  • 获取正确的公开提交地址
    打开你的Google Form,点击右上角「发送」→ 选「嵌入HTML」→ 复制<form>标签里的action属性值。这个地址是专门给公开提交用的,不需要OAuth授权,别用需要验证的API接口。

  • 用UnityWebRequest替代旧WebRequest
    Unity已弃用旧的WebRequest类,改用UnityWebRequest能避免很多兼容性问题,下面是可直接用的提交代码:

    using UnityEngine;
    using UnityEngine.Networking;
    using System.Collections;
    
    public class GoogleFormSubmit : MonoBehaviour
    {
        // 替换为你的Google Form action地址
        private readonly string _formSubmitUrl = "https://docs.google.com/forms/d/e/你的表单ID/formResponse";
    
        private IEnumerator PostToGoogleForm()
        {
            var form = new WWWForm();
            // 替换为表单实际的entry字段名,从嵌入HTML的<input name="entry.XXX">获取
            form.AddField("entry.1234567890", "测试提交内容");
            form.AddField("entry.0987654321", "来自Unity的提交");
    
            using (var webRequest = UnityWebRequest.Post(_formSubmitUrl, form))
            {
                yield return webRequest.SendWebRequest();
    
                if (webRequest.result != UnityWebRequest.Result.Success)
                {
                    Debug.LogError($"提交失败: {webRequest.error}");
                }
                else
                {
                    Debug.Log("表单提交成功");
                }
            }
        }
    
        // 绑定UI按钮触发提交
        public void TriggerSubmit()
        {
            StartCoroutine(PostToGoogleForm());
        }
    }
    
  • 必查的配置项

    • 确认Google Form的设置是「任何人都可以填写」,如果限制了访问范围,会直接返回401
    • 表单字段的entry.XXX名称必须完全匹配,大小写不能错
    • 不要手动添加Authorization请求头,公开表单不需要授权,额外的头会触发权限验证

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 04:30:52