- Вы уже смогли запустить функцию скрипта Google Apps с помощью API скриптов Apps с Python.
- Когда вы запускаете функцию
test1
на стороне GAS с аргументами {"1": "hi", "3": "bye","a5": "yes"}
, event[1]
и event["3"]
return undefined
. - Вы хотите получить значения
hi
и bye
с event[1]
и event["3"]
соответственно.
Если мое понимание верно как насчет этого ответа? Думайте об этом как об одном из нескольких возможных ответов.
Проблема и обходное решение:
Когда следующая функция запускается непосредственно в редакторе сценариев Google Apps Script, все значения hi
bye
и yes
отображаются в журнале. Из этого выясняется, что Google Apps Script может использовать ключ, который является номером.
function myFunction() {
var event = {"1": "hi", "3": "bye","a5": "yes"};
Logger.log( event[1] ); // <--- hi
Logger.log( event["3"] ); // <--- bye
Logger.log( event["a5"] ); // <--- yes
}
Когда {"1": "hi", "3": "bye","a5": "yes"}
отправляется с помощью Apps Script API, ключ, который является числом, не возвращает ценность. Я мог бы также подтвердить эту ситуацию в моем окружении. В этом случае каждый ключ может быть восстановлен. Но когда ключом является число, значение для ключа не может быть получено. С другой стороны, в официальном документе я мог бы подтвердить, что struct_value
(JSON объект) можно использовать для parameters[]
.
В качестве другого теста я запустил функция test1
с помощью следующей команды curl.
curl -X POST \
-H "Authorization: Bearer ###" \
-H "Content-Type: application/json" \
-d "{function: 'test1', parameters: [{'1': 'hi', '3': 'bye', 'a5': 'yes'}], devMode: true}" \
"https://script.googleapis.com/v1/scripts/###:run"
Я могу подтвердить, что возникла та же проблема. При этом считается, что модуль google-api- python -client не является причиной этой проблемы.
Ситуация сверху, я думал, что когда объект отправляется на сторону ГАЗ, объект не может быть правильно принят. В качестве обходного пути я поставил event = JSON.parse(JSON.stringify(event))
в верхней части функции. Этим я могу подтвердить, что все значения получены.
Модифицированный скрипт:
function test1( event ) {
event = JSON.parse(JSON.stringify(event)); // Added
Logger.log( event ); // <--- {1=hi, 3=bye, a5=yes}
Logger.log( event[1] ); // <--- hi
Logger.log( event["3"] ); // <--- bye
Logger.log( event["a5"] ); // <--- yes
}
Ссылки:
Если я неправильно понял ваш вопрос, и это не то направление, в котором вы хотите, я приношу свои извинения.