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
相关产品推荐
相关产品推荐

