From 5d2edee8bb1118f8d545ab65d133a62bd6ad1348 Mon Sep 17 00:00:00 2001 From: mikemajara Date: Sat, 17 Apr 2021 11:24:19 +0200 Subject: [PATCH 1/2] feat: adds Bearer token auth --- ImportJSON.gs | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/ImportJSON.gs b/ImportJSON.gs index 731806e..938a99c 100644 --- a/ImportJSON.gs +++ b/ImportJSON.gs @@ -252,6 +252,35 @@ function ImportJSONBasicAuth(url, username, password, query, parseOptions) { return ImportJSONAdvanced(url, header, query, parseOptions, includeXPath_, defaultTransform_); } + +/** + * Helper function to authenticate with token based auth informations using ImportJSONAdvanced + * + * Imports a JSON feed and returns the results to be inserted into a Google Spreadsheet. The JSON feed is flattened to create + * a two-dimensional array. The first row contains the headers, with each column header indicating the path to that data in + * the JSON feed. The remaining rows contain the data. + * + * The fetchOptions can be used to change how the JSON feed is retrieved. For instance, the "method" and "payload" options can be + * set to pass a POST request with post parameters. For more information on the available parameters, see + * https://developers.google.com/apps-script/reference/url-fetch/url-fetch-app . + * + * Use the include and transformation functions to determine what to include in the import and how to transform the data after it is + * imported. + * + * @param {url} the URL to a http basic auth protected JSON feed + * @param {username} the Username for authentication + * @param {password} the Password for authentication + * @param {query} the query passed to the include function (optional) + * @param {parseOptions} a comma-separated list of options that may alter processing of the data (optional) + * + * @return a two-dimensional array containing the data, with the first row containing headers + * @customfunction + **/ +function ImportJSONTokenAuth(url, token, query, parseOptions) { + var header = {headers: {Authorization: "Bearer " + token}}; + return ImportJSONAdvanced(url, header, query, parseOptions, includeXPath_, defaultTransform_); +} + /** * Encodes the given value to use within a URL. * From a4bd4172fcb01cba5150400813b2d59517e32c32 Mon Sep 17 00:00:00 2001 From: mikemajara Date: Sat, 17 Apr 2021 11:25:23 +0200 Subject: [PATCH 2/2] readme: Updated method table --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index e02e4c8..77b0a81 100644 --- a/README.md +++ b/README.md @@ -12,6 +12,7 @@ Here are all the functions available: | **ImportJSONFromSheet** | For use by end users to import JSON from one of the Sheets | | **ImportJSONViaPost** | For use by end users to import a JSON feed from a URL using POST parameters | | **ImportJSONBasicAuth** | For use by end users to import a JSON feed from a URL with HTTP Basic Auth | +| **ImportJSONTokenAuth** | For use by end users to import a JSON feed from a URL with Token based Auth | | **ImportJSONAdvanced** | For use by script developers to easily extend the functionality of this library | Review `ImportJSON.gs` for more info on how to use these in detail.