Ответ API скрипта приложений не имеет ключа «результата» - PullRequest
0 голосов
/ 30 ноября 2018

Я создал проект Google Apps Script для загрузки файлов на Google Drive и создал приложение на C # для выполнения этого скрипта.Я использовал пример кода, приведенный в руководстве по документации

Однако, когда я вызываю свою функцию через API скриптов Apps, мое приложение 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");
      }
  }

Если я изменяю "result" на "@type", эта ошибка отображается

Невозможно привести объект типа 'System.String' к типу 'Newtonsoft.Json.Linq.JObject'.

1 Ответ

0 голосов
/ 07 июня 2019

Скорее всего, ваша функция скрипта Google App не имеет оператора возврата.API не находит никакого результата.У меня была такая же проблема.

function someFunction () {
    // some code here
    return "something";
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...