【问题标题】:Sending Google Form Responses from Unity 401 Unauthorized从 Unity 401 未经授权发送 Google 表单响应
【发布时间】: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 作为统一网络请求和实际表单之间的中介。

【问题讨论】:

标签: unity3d google-forms


【解决方案1】:

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

不幸的是,这种将信息发布到谷歌表单的方法似乎不可靠,因为它根本没有很好的文档记录,这里的进展来自查看 html 页面代码。我已经按照相同的教程进行操作,但也遇到了问题。

但幸运的是,我找到了一个更好的解决方案,可以让您更好地控制和访问 Google 表单。

https://developers.google.com/apps-script/

https://developers.google.com/apps-script/reference/forms/

无需猜测发布 API,使用 Google Apps 脚本,您可以使用 javascript 从 Google 自己的服务器设置和部署 Web 应用程序,并直接与表单交互。从那里你只需要设计 JSON 有效负载。我已经使用 Postman 来模拟统一发送的网络请求。

【讨论】:

  • 请不要从其他答案中复制..如果不是至少链接到它,甚至更少。而是支持另一个答案并对问题发表评论..然后它可能会被关闭为重复
【解决方案2】:

检查 Google 表单是否具有公共权限。也许您已将它们设置为单个用户或单个组织。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-03-20
    • 2022-08-07
    • 1970-01-01
    • 1970-01-01
    • 2018-10-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多