unity3d - 从 Unity 401 未经授权发送 Google 表单响应
问题描述
是否仍然可以以编程方式向 Google 表单发送“回复”。最好没有用户登录。我认为他们更改了协议。
在一个统一的应用程序中,我需要设置一个调查,显而易见的选择是谷歌表单,因为我的一个朋友过去做过。但是,在从教程中实现了一些测试代码之后,尽管遵循了教程,但我无法获得响应并且没有收到任何数据。相反,它抱怨 401 未经授权的错误。继承人一些代码:
private string target_url =
"https://docs.google.com/forms/myForm/formResponse";
private IEnumerator RoutineSendActual()
{
WWWForm form = new WWWForm();
form.AddField( "entry.689820410", "code test" );
var www = new WWW( target_url, form.data );
Debug.Log( www.url );
yield return www;
Debug.Log( "sent " + www.error + " " + www.isDone + " " + www.responseHeaders);
foreach ( var responseKey in www.responseHeaders.Keys )
{
Debug.Log( responseKey + "|" + www.responseHeaders[responseKey] );
}
Debug.Log( www.text );
yield break;
}
相反,www.error 给了我 401 未经授权的错误。我遵循了以下教程https://www.youtube.com/watch?v=z9b5aRfrz7M 并且以下问题可以正常工作如何在 Unity3d 中以谷歌形式在另一个部分添加价值
但对我来说,我得到 401 未经授权。我什至确保表格和电子表格向所有人公开和可编辑(我担心这可能会破解数据)。
另外,我是否应该研究Google Apps 脚本作为统一网络请求和实际表单之间的中介。
解决方案
{注意:我从我回答的另一个问题中复制了这个,但我认为这是对我自己问题的回答}
不幸的是,这种将信息发布到谷歌表单的方法似乎是不可靠的,因为它没有得到很好的记录,这里的进展来自于查看 html 页面代码。我遵循了相同的教程并且也遇到了麻烦。
但幸运的是,我找到了一个更好的解决方案,可以让您更好地控制和访问谷歌表单。
https://developers.google.com/apps-script/
https://developers.google.com/apps-script/reference/forms/
无需猜测 post API,使用 Google Apps 脚本,您可以使用 javascript 从 google 自己的服务器设置和部署 Web 应用程序,并直接与表单交互。从那里你只需要设计 JSON 有效负载。我已经使用 Postman 来模拟统一发送的 Web 请求。
推荐阅读
- android - Android/Kotlin - 将 TextInputLayout.END_ICON_CLEAR_TEXT 添加到 textview 不会执行 setOnFocusChangeListener
- android-studio - 图像减慢应用程序
- database - 删除弹性搜索快照
- r - R readr read_csv 跳过错误与 VROOM_CONNECTION_SIZE
- dialogflow-es - 从 webhook Actions Google 或 Google Assistant 中的 DialogFlow 启动 URL
- c# - 为不同的 EF 对象分解 Linq Where 子句
- html - 每当文本换行使 flex-box 缩小并删除间距时
- mysql - 查询以从不同列中选择日期范围
- javascript - 如何使用firebase查询唯一对?
- javascript - 获取 webpack 输出文件列表并在 PWA 的另一个模块中使用