Apps Script API响应没有“结果”键

时间:2018-11-30 11:09:05

标签: c# .net google-apps-script google-api-dotnet-client google-apps-script-api

我创建了一个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”。

1 个答案:

答案 0 :(得分:0)

您的Google App脚本函数很可能没有return语句。 API未找到任何结果。我遇到了同样的问题。

function someFunction () {
    // some code here
    return "something";
}