gpt4 book ai didi

c# - 如何使用 Unity 3D 将数据保存到 Google SpreadSheet

转载 作者:数据小太阳 更新时间:2023-10-29 03:00:31 25 4
gpt4 key购买 nike

以前,我能够使用 ajax 将数据从 HTML 表单发送到 Google 表单(响应电子表格)。这是代码。

Ajax 代码

function postContactToGoogle() {
var email = $('#emailtosubscribe').val();
$.ajax({
url: "https://docs.google.com/forms/d/e/[key]/formResponse",
data: {
"entry_1064445353": email
},
type: "POST",
dataType: "xml",
statusCode: {
0: function() {
window.location.reload();
},
200: function() {
window.location.reload();
}
}
});
}

现在,我正尝试使用 UnityWebRequest 在 Unity 中执行相同的操作。这是我的代码

统一代码

public class SendToGoogle : MonoBehaviour {
public GameObject email;

private string Email;

[SerializeField]
private string BASE_URL = "https://docs.google.com/forms/d/e/[key]/formResponse";

IEnumerator Post(string json) {
byte[] bytes = System.Text.Encoding.ASCII.GetBytes(json);

using (UnityWebRequest www = new UnityWebRequest(BASE_URL, UnityWebRequest.kHttpVerbPOST)) {
UploadHandlerRaw uH = new UploadHandlerRaw(bytes);
DownloadHandlerBuffer dH = new DownloadHandlerBuffer();
www.uploadHandler = uH;
www.downloadHandler = dH;
www.SetRequestHeader("Content-Type", "application/json");
yield return www.Send();

if (www.isError) {
Debug.Log(www.error);
} else {
Debug.Log(www.ToString());
Debug.Log(www.downloadHandler.text);
}
}
}

public void Subscribe() {
Email = email.GetComponent<InputField>().text;
var n = new JSONObject();
n["entry_1064445353"] = Email;
string json = n.ToString();
Debug.Log(Email);
StartCoroutine(Post(json));
}
}

现在,当我尝试从场景提交电子邮件时,电子表格中会创建时间戳,但电子邮件不会保存。我对 www.SetRequestHeader("Content-Type", "application/json"); 表示怀疑,因为在 ajax 我正在使用 xml作为 datatypedataType: "xml"

此外,我还尝试只发送 string 而不将其更改为 JSONObject 并更改 SetRequestHeader 上的 Content-Type > 到 xml

最佳答案

最后,我使用 WWWWWWForm 解决了这个问题,还设法创建了一个视频教程,因为我很难找到 How to 的解决方案将数据从 Unity 保存到 Google 电子表格

视频教程:How to save data to Google Spreadsheet from Unity (YouTube)

这是我必须更改的代码片段。

IEnumerator Post(string email) {
WWWForm form = new WWWForm();
form.AddField("entry.1064445353", email);

byte[] rawData = form.data;
string url = BASE_URL;

// Post a request to an URL with our custom headers
WWW www = new WWW(url, rawData);
yield return www;
}

public void Subscribe() {
Email = email.GetComponent<InputField>().text;
StartCoroutine(Post(Email));
}

如果您在查找 Google Entry 字段时遇到问题,请查看此处。 How to save data to Google Spreadsheet from Unity 3D using Google Forms

关于c# - 如何使用 Unity 3D 将数据保存到 Google SpreadSheet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44200938/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com