我创建了一个Google Apps脚本项目,将文件上传到Google云端硬盘,并使用C#构建了一个应用程序来执行此脚本。我使用了documentation's guide
中给出的示例代码但是,当我通过Apps Script API调用函数时,我的C#应用会引发以下异常:
System.Collections.Generic.KeyNotFoundException
:“字典中不存在给定的密钥。”
执行此行时:
Newtonsoft.Json.Linq.JObject folderSet = (Newtonsoft.Json.Linq.JObject)op.Response["result"];
这是相关的设置代码:
ExecutionRequest request = new ExecutionRequest();
request.Function = "uploadDocument";
IList<Object> prms = new List<Object>();
prms.Add(name.ToString());
prms.Add(dest);
prms.Add(file);
request.Parameters = prms;
ScriptsResource.RunRequest runReq =
service.Scripts.Run(request, scriptId);
try
{
// Make the API request.
Operation op = runReq.Execute();
if (op.Error != null)
{
IDictionary<string, object> error = op.Error.Details[0];
Console.WriteLine("Script error message: {0}", error["errorMessage"]);
}
else
{
Newtonsoft.Json.Linq.JObject folderSet =
(Newtonsoft.Json.Linq.JObject)op.Response["result"];
Console.WriteLine("ok");
}
}
如果我将“结果”更改为“ @type”,则会显示此错误
无法将类型为“ System.String”的对象转换为类型为“ Newtonsoft.Json.Linq.JObject”。
答案 0 :(得分:0)
您的Google App脚本函数很可能没有return语句。 API未找到任何结果。我遇到了同样的问题。
function someFunction () {
// some code here
return "something";
}