我正在扑腾,人们将在其中输入所有信息,并将这些信息传递到Google Sheet。 但是当我尝试传递数据时,我收到以下错误:
I/flutter (23770): FormatException: Unexpected character (at character 1)
I/flutter (23770): <!DOCTYPE html><html><head><link rel="shortcut icon" href="//ssl.gstatic.co...
I/flutter (23770): ^
我的API调用代码如下:
import 'package:fooddeliveryapp/model/Customer_Information.dart';
import 'package:http/http.dart' as http;
import 'dart:convert' as convert;
class InformationController {
final void Function(String) callback;
static const String URL =
"https://script.google.com/macros/s/AKfycbxuNeIu5cibZHs9sXM6vsl-X5Cf7muMP18xRiDCRXNDF--z0y8o/exec";
static const STATUS_SUCCESS = "SUCCESS";
InformationController(this.callback);
void submitCustomerInformation(
CustomerInformation customerInformation) async {
try {
await http.get(URL + customerInformation.toParams()).then((response) {
callback(convert.jsonDecode(response.body)['Status']);
});
} catch (e) {
print(e);
}
}
}
以下是我的电子表格脚本编辑器代码:
function doGet(request) {
var sheet=spreadsheetApp.openById("1UWt6IVRcebqErf4mjURKAY-_oC7dBMtbOx1CQ8cfW0Q");
var result={"status": "SUCCESS"};
try{
var Name=request.parameter.Name;
var PhoneNumber=request.parameter.PhoneNumber;
var Address=request.parameter.Address;
var rowData=sheet.appendRow([Name,PhoneNumber,Address]);
}catch(exc){
result={"Status":"FAILED","message":exc};
}
return ContentService
.createTextOutput(JSON.stringify(result))
.setMimeType(ContentService.MimeType.JSON);
}
将不胜感激,谢谢!
答案 0 :(得分:1)
doGet
引发参考错误,因为未定义spreadsheetApp
:这是一个错字;应该改为SpreadsheetApp,首字母大写。
因此,对Web应用程序的请求返回错误页面,而不是您期望的文本输出。
如果尝试使用浏览器访问脚本URL,则可以检查发生了什么。
修正拼写错误并改用这种方式打开电子表格:
var sheet = SpreadsheetApp.openById("1UWt6IVRcebqErf4mjURKAY-_oC7dBMtbOx1CQ8cfW0Q");