Я разрабатываю функцию сценария приложений Google, которая вставляет строку в таблицу слияния. Большая часть моего интерфейса таблицы fusion работает отлично, но это моя первая попытка запроса sql 'POST'. Основываясь на документации here Я должен был бы разместить инструкцию sql внутри тела POST. Я сократил себя до OAuth Playground для устранения неполадок, и я продолжаю получать следующую ошибку. Я пытался использовать инструкцию вставки sql sql=INSERT INTO {fusionId} (HeadingName) VALUES (ValueOne)
, и я пробовал различные варианты этого утверждения безрезультатно. Пожалуйста, помогите мне определить правильный синтаксис или метод для этого.OAuth, OAuthConfig и скрипт Google Apps (API таблицы Fusion - проблемы с вставкой SQL)
{
"error": {
"errors": [
{
"domain": "global",
"reason": "required",
"message": "Required parameter: sql",
"locationType": "parameter",
"location": "sql"
}
],
"code": 400,
"message": "Required parameter: sql"
}
}
После того, как я понять это, я тогда нужно дублировать работу площадка в моем коде, который (я думаю) будет выглядеть примерно так:
function fusionRequest(methodType, sql, oAuthFields) {
OAL.googleAuth(oAuthFields);
var options =
{
oAuthUseToken : "always",
oAuthServiceName : 'fusiontables',
method : "POST",
payload : "sql=INSERT INTO {fusionId} (Heading) VALUES (ONE)",
contentType : "application/json"
};
Logger.log(options)
var fetchResult = UrlFetchApp.fetch(oAuthFields.queryUrl, options);
return JSON.parse(fetchResult.getContentText());
}
Я думал, что мог также проблема с типом контента, но я в недоумении. Пожалуйста помоги.
Обновление # 1 Используя совет Саньи, я смог получить запрос, работающий на игровой площадке OAuth. Тем не менее, я все еще борюсь с запросом в коде. Я получаю повторяющиеся запросы на авторизацию при запуске кода (или общую ошибку OAuth при отладке). Из моего предыдущего опыта here, я считаю, это означает, что с моей полезной нагрузкой все еще что-то не так. Любые советы по этому поводу будут высоко оценены.
var oAuthFields = {
'clientId' : '523606257547.apps.googleusercontent.com',
'scope' : 'https://www.googleapis.com/auth/fusiontables',
'fetchUrl' : 'https://www.googleapis.com/fusiontables/v1/',
'clientSecret' : 'L-f8DgwK4rs7Qmw9k5IFL7lZ',
'fusionId' : '1b4kT_aYRfNBy8ZPtSZqhQUqVSVIYj_QWiBmjXXI',
'service' : 'fusiontables',
'queryUrl' : 'https://www.googleapis.com/fusiontables/v1/query/'
};
function fusionRequest(methodType, sql, oAuthFields) {
OAL.googleAuth(oAuthFields);
var options =
{
oAuthUseToken : "always",
oAuthServiceName : 'fusiontables',
method : "POST",
payload : "sql=INSERT INTO {fusion id} (\'Heading\') VALUES (\'ONE\')",
contentType : "application/x-www-form-urlencoded"
};
var fetchResult = UrlFetchApp.fetch(oAuthFields.queryUrl, options);
return JSON.parse(fetchResult.getContentText());
}
В контексте, функция googleAuth() и общая компоновка этой функции такой же, как функция я использую, чтобы добавить столбцы в таблице слитого (который работает).
Благодарим вас за подробный ответ. Изменив кодировку, я смог получить запрос, работающий на игровой площадке OAuth, но он все еще дает мне проблемы в коде. Я получаю повторяющиеся запросы на авторизацию при запуске кода (или общую ошибку OAuth при отладке). Я считаю, что это означает, что с моей полезной нагрузкой все еще что-то не так. Помогите? (см. обновление выше). –
если вы создадите скрипку, я могу помочь. не принимайте это как должное. oauth отчасти трудно отлаживать. если вы его работаете на спортивной площадке oauth, тогда ничего плохого в вашей полезной нагрузке. ваша аутентификация может быть неисправна, хотя .. – sanya