如何在 unity3d 中的 Google 表单的其他部分添加价值?
我只能在第 1 部分添加值。在其他部分添加值时遇到问题。
这是代码
public GameObject username;
public GameObject email;
public GameObject phone;
public GameObject phone2;
private string Name;
private string Email;
private string Phone;
private string Phone2;
[SerializeField]
private string BASE_URL = "https://docs.google.com/forms/d/e/1FAIpQLSc8rwjEYJ0akVuuRo0GULsoyhvBxgLwuvv6oDtWiJgJZjyiMw/formResponse";
IEnumerator Post(string name, string email, string phone, string phone2) {
WWWForm form = new WWWForm();
form.AddField("entry.1417744726", name);
form.AddField("entry.881581736", email);
form.AddField("entry.977000887", phone);
form.AddField("entry.1897661126", phone2);
byte[] rawData = form.data;
WWW www = new WWW(BASE_URL, rawData);
yield return www;
}
public void Send() {
Name = username.GetComponent<InputField>().text;
Email = email.GetComponent<InputField>().text;
Phone = phone.GetComponent<InputField>().text;
Phone2 = phone2.GetComponent<InputField>().text;
StartCoroutine(Post(Name, Email, Phone, Phone2));
}
不幸的是,这种将信息发布到谷歌表单的方法似乎并不可靠,因为这里的所有进展都没有很好地记录下来,都是通过查看 html 页面代码来实现的。我遵循了相同的教程,但也遇到了麻烦。
但幸运的是,我找到了更好的解决方案,可以让您更好地控制和访问谷歌表单。
https://developers.google.com/apps-script/
https://developers.google.com/apps-script/reference/forms/
您可以使用 Google Apps 脚本从 google 自己的服务器上使用 JavaScript 设置和部署 Web 应用程序,并直接与表单交互,而不是猜测 post API。从那里您只需设计 JSON 有效负载。我已经使用 Postman 模拟将从 unity 发送的 Web 请求,让它正常工作。
就您面临的部分问题而言,在谷歌应用程序脚本javascript中,这并不是太大的问题,因为这些部分只是用于在视觉上破坏前端,并且不会影响数据。然而,它们在后端表示为“项目”,因此当您将 JSON 有效负载中的答案复制到表单响应时,请注意您的部分所在的索引,以便您可以跳过它们,而不会意外丢失数据。
我遇到了同样的问题,无法将值推送到 Google 表单另一部分中的字段。有人有解决方法吗?