首页 > 解决方案 > 从 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 脚本作为统一网络请求和实际表单之间的中介。

标签: unity3dgoogle-forms

解决方案


{注意:我从我回答的另一个问题中复制了这个,但我认为这是对我自己问题的回答}

不幸的是,这种将信息发布到谷歌表单的方法似乎是不可靠的,因为它没有得到很好的记录,这里的进展来自于查看 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 请求。


推荐阅读