Google Apps 脚本 API 带有 GraphQL 解析错误的请求
Google Apps Script API Request with GraphQL parse error
我正在尝试使用 Apps 脚本发出 API 请求。 API 基于 GraphQL。
我正在使用 JSON.stringify 函数。但是APIreturns出错了
要求:
payload={"query":"{mutation {change_column_value (board_id: 177955, item_id: 287466289, column_id:\"phone\", value: \"{phone : 15065332974, countryShortName: \"US\" }\") {name column_values{ id value}}}"}}
我遇到错误;
{"errors":[{"message":"Parse error on \" }\" (STRING) at [1, 148]","locations":[{"line":1,"column":148}]}]}
Apps 脚本代码:
var us = "US"
var column_values = '{ \
mutation {change_column_value (board_id: 177955, item_id: '+ 287466289 +', column_id:"phone", value: "{phone : 15065332974, countryShortName: \"' + us +'\" }") {name column_values{ id value}} \
}';
settings = {
"method": "POST",
"headers": {"Content-Type" : "application/json","Authorization" : "eyJhbGciOiJIXXXXXXXXXX"},
"payload" : JSON.stringify({query:column_values})
}
response= UrlFetchApp.fetch(url, settings);
您不需要在 JSON 请求中转义特殊字符。
syntax 意味着使用通过冒号相互分配的键值对,其中字符串位于引号内(不使用反斜杠转义!),而数字和变量名则不是。
括号应该用于您想要的 API 请求,如 documented。
GraphQL 操作中的括号表示一个选择集——一个或多个被请求的字段。操作本身(无论是 query
还是 mutation
)不是一个字段,因此您不要将整个操作括在方括号中。
正确:
mutation {
doSomething
}
不正确:
{
mutation {
doSomething
}
}
只有 次你会看到括号看起来像在 "outside" 上是在使用 query shorthand.
时
前提是value
是一个字符串,那么你在里面那个字符串用反斜杠转义双引号就可以了
您也可以考虑使用 variables,这将大大清理您的代码并减少出错的几率。
我正在尝试使用 Apps 脚本发出 API 请求。 API 基于 GraphQL。 我正在使用 JSON.stringify 函数。但是APIreturns出错了
要求:
payload={"query":"{mutation {change_column_value (board_id: 177955, item_id: 287466289, column_id:\"phone\", value: \"{phone : 15065332974, countryShortName: \"US\" }\") {name column_values{ id value}}}"}}
我遇到错误;
{"errors":[{"message":"Parse error on \" }\" (STRING) at [1, 148]","locations":[{"line":1,"column":148}]}]}
Apps 脚本代码:
var us = "US"
var column_values = '{ \
mutation {change_column_value (board_id: 177955, item_id: '+ 287466289 +', column_id:"phone", value: "{phone : 15065332974, countryShortName: \"' + us +'\" }") {name column_values{ id value}} \
}';
settings = {
"method": "POST",
"headers": {"Content-Type" : "application/json","Authorization" : "eyJhbGciOiJIXXXXXXXXXX"},
"payload" : JSON.stringify({query:column_values})
}
response= UrlFetchApp.fetch(url, settings);
您不需要在 JSON 请求中转义特殊字符。
syntax 意味着使用通过冒号相互分配的键值对,其中字符串位于引号内(不使用反斜杠转义!),而数字和变量名则不是。
括号应该用于您想要的 API 请求,如 documented。
GraphQL 操作中的括号表示一个选择集——一个或多个被请求的字段。操作本身(无论是 query
还是 mutation
)不是一个字段,因此您不要将整个操作括在方括号中。
正确:
mutation {
doSomething
}
不正确:
{
mutation {
doSomething
}
}
只有 次你会看到括号看起来像在 "outside" 上是在使用 query shorthand.
时前提是value
是一个字符串,那么你在里面那个字符串用反斜杠转义双引号就可以了
您也可以考虑使用 variables,这将大大清理您的代码并减少出错的几率。