Я пытаюсь импортировать данные из WordsAPI , используя import JSON, пользовательскую функцию скрипта Google в Google Sheets из Github. Легко импортировать информацию из API, который не требует аутентификации. Однако для WordsAPI требуется ключ, и я не могу понять, как передать ключ в функцию. Мое лучшее предположение:
=ImportJSONAdvanced("https://wordsapiv1.p.mashape.com/words/example/examples", "wordsapiv1.p.rapidapi.com", "<MYKEYHERE>", "/examples/", "noInherit,noTruncate,Headers")
Но это приводит к ошибке: Bad value (line 220).
Соответствующий раздел кода приведен ниже. Go в Импорт JSON .gs в Github для получения полного кода.
function ImportJSONAdvanced(url, fetchOptions, query, parseOptions, includeFunc, transformFunc) {
var jsondata = UrlFetchApp.fetch(url, fetchOptions);
var object = JSON.parse(jsondata.getContentText());
return parseJSONObject_(object, query, parseOptions, includeFunc, transformFunc);
}
Я прочитал документацию относительно аутентификации на сайте WordsAPI и они предлагают следующий фрагмент кода:
// These code snippets use an open-source library. http://unirest.io/nodejs
unirest.get("https://wordsapiv1.p.mashape.com/words/soliloquy")
.header("X-Mashape-Key", "<MYKEYHERE>")
.header("Accept", "application/json")
.end(function (result) {
console.log(result.status, result.headers, result.body);
});
Я также прочитал документацию скрипта Служб Google по вопросам авторизации для служб Google , но для меня это мало что значит , Возможно ли проблема в том, что ImportJSONAdvanced использует POST и WordsAPI хочет получить? Если это так, как я могу изменить код, чтобы он работал?
Спасибо за чтение. Любая помощь будет очень высоко ценится.
Редактировать: на основе комментариев @chuckx и дополнительной помощи. Я добавил следующее в строке 255 к исходному коду .
/**
*
* Wrapper for WordsAPI
*
* @param {url} the URL to a http basic auth protected JSON feed
* @param {api_key} the api_key for authentication
* @param {query} always = ""
* @param {parseOptions} a comma-separated list of options that may alter processing of the data (optional)
*/
function ImportJSON_words(url, api_key, query, parseOptions) {
var header = {
headers: {
'X-Mashape-Key': api_key,
'Accept': 'application/json'
}
}
return ImportJSONAdvanced(url, header, query, parseOptions, includeXPath_, defaultTransform_)
}
Работает.