【发布时间】:2022-03-12 02:43:55
【问题描述】:
是否仍然可以以编程方式向 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 以下问题是否有效How to add value on another section in google form in Unity3d
但对我来说,我得到了未经授权的 401。我什至确保将表格和电子表格公开并可供所有人编辑(我担心这会破坏数据)。
另外,我是否应该转而研究 Google Apps Script 作为统一网络请求和实际表单之间的中介。
【问题讨论】:
-
您可能仍需要以 Google 帐户身份进行身份验证。看看UnityWebRequest Embedding User + Password data for HTTP Basic Authentication not working on Android。无论如何,我建议宁愿使用
UnityWebRequest.Post而不是 obsoleteWWW -
在围绕本教程的讨论中,有人提到,为此目的,统一 Web 请求不起作用,而是使用 WWW,因为我猜它是如何格式化请求的。
-
@derHugo 另外,我很确定您链接的问题是针对不同的服务的。
-
刚刚实现了unity web request post来测试。还是一样的问题。
-
这个人 stackoverflow.com/questions/57767790/… 已经开始工作了,他们的问题是关于一些不同的事情,但他们让最初的帖子工作了。但是,我没有足够的声誉 atm 来评论询问他们。
标签: unity3d google-forms