{"id":159848,"date":"2024-12-02T14:45:13","date_gmt":"2024-12-02T05:45:13","guid":{"rendered":"https:\/\/support.questetra.com\/?p=159848"},"modified":"2025-03-06T15:00:41","modified_gmt":"2025-03-06T06:00:41","slug":"service-task-google-drive-file-download","status":"publish","type":"post","link":"https:\/\/support.questetra.com\/en\/bpmn-icons\/service-task-google-drive-file-download\/","title":{"rendered":"Google Drive: Download File"},"content":{"rendered":"\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"58\" data-attachment-id=\"113160\" data-permalink=\"https:\/\/support.questetra.com\/en\/developer-blog\/how-to-use-timer-start-event\/attachment\/advanced-banner-new-en\/\" data-orig-file=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2021\/05\/advanced-banner-new-en.png?fit=1200%2C68&amp;ssl=1\" data-orig-size=\"1200,68\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"advanced-banner-new-en\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2021\/05\/advanced-banner-new-en.png?fit=1024%2C58&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2021\/05\/advanced-banner-new-en-1024x58.png?resize=1024%2C58&#038;ssl=1\" alt=\"\" class=\"wp-image-113160\" srcset=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2021\/05\/advanced-banner-new-en.png?resize=1024%2C58&amp;ssl=1 1024w, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2021\/05\/advanced-banner-new-en.png?resize=600%2C34&amp;ssl=1 600w, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2021\/05\/advanced-banner-new-en.png?resize=768%2C44&amp;ssl=1 768w, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2021\/05\/advanced-banner-new-en.png?w=1200&amp;ssl=1 1200w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" \/><\/figure>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h4 class=\"wp-block-heading has-background\" style=\"background-color:#ccffcc;margin-top:var(--wp--preset--spacing--30);margin-right:0;margin-bottom:0;margin-left:0;padding-top:0;padding-right:var(--wp--preset--spacing--20);padding-bottom:0;padding-left:var(--wp--preset--spacing--20)\"><strong>Google Drive: Download File<\/strong><\/h4>\n\n\n\n<p class=\"has-text-align-right has-background has-small-font-size mt-0 pt-0 wp-block-paragraph\" style=\"background-color:#ccffcc;margin-top:0;margin-right:0;margin-bottom:0;margin-left:0;padding-top:0;padding-right:var(--wp--preset--spacing--30);padding-bottom:0;padding-left:var(--wp--preset--spacing--30)\"><a href=\"https:\/\/support.questetra.com\/en\/bpmn-icons\/service-task-google-drive-file-download\/\">Google \u30c9\u30e9\u30a4\u30d6: \u30d5\u30a1\u30a4\u30eb\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9<\/a><\/p>\n\n\n\n<p class=\"has-background mt-0 pt-0 wp-block-paragraph\" style=\"background-color:#f0fff0;margin-top:0;margin-right:0;margin-bottom:var(--wp--preset--spacing--60);margin-left:0;padding-top:var(--wp--preset--spacing--20);padding-right:var(--wp--preset--spacing--30);padding-bottom:var(--wp--preset--spacing--20);padding-left:var(--wp--preset--spacing--40)\">This item downloads the specified files on Google Drive. You can download multiple files at once. When you download multiple files, you should write one File ID per line.<\/p>\n\n\n\n<figure class=\"wp-block-image alignright has-custom-border is-style-default\"><img decoding=\"async\" src=\"data:image;base64,\n        iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAA71JREFUWEfF\n        V11oFFcU\/s7M7K6TRs1vK1VUSGmbCK2SB6VFgpLWlYC2omIDLaUlCBGfimwWgw9Fu9mW0ocSoUhE\n        aKmlgUgUyShiEUWSh4AW7L9CS5PGZhuTJmTi7swcmUn3d+ZOdtGy87Ts3HvOd77zfefeIZT5oVLy\n        h2MP3wTMViJqZqABQM1\/+6cIuMvMo4B8RYuGzhUbd0kArT1TK2VWj5CEg2DUFRWYkGALX5ikf3Kl\n        q2bGb48vgJ0x\/T2WEC86cWEmQoIsRIai6mkRCCGAcHy+F0ydRVW81CLik1qk4pDXMk8A4bj+NRhv\n        LRW3pPeEs1pEbXeTVPDPE63clc3NRB4DTs8JfX6V7d2soKVRgizlk5cyGBdvmbj8velLDDHez9VE\n        JoqtdoXU3\/wE19Io452tCtQgUP2Uu3u\/TliInE1CT\/pgICQM1p9LuyMTZUdMP06Eo37wYweC2LhO\n        wsQ0o245QZHzVxsm8O2IgS+vG74sMOPEpajabS\/KAAjH9Um\/6vdvUdD+qoKQAiykgFmdUb\/CzcLE\n        DCN+PoWfxi0xCEJCi6j1GQDOhCNrQLRjdQ2h+40g1tdnE\/4zy6gIkdOO3Mdi4OodE59eTPmbhKU9\n        9sR0IoZj870gsec7tivY1axAkbIxDQuY\/JexaiWBCoiYnmd8fsnAzV98BMl8UotWHHK27uzRhxnY\n        7AX55XUSjrQFULvcTbdNs92G2kr3u1u\/W4h+I1YjASNDXeqWRQZ69EnAe85Hdwew9QXZVeXsAqP3\n        soENayS0bZJR4EpHJ2eupTA4KmQhoXWpi00N9+j2qhyCF7l4\/SUZHdsUVC7Lr9Du87UfTXx8IYW1\n        dYRje4JYXe1m4d7fjI8GkxibYi9yLa1LlYUAbHEd3xdE0xoXLhQqPdchuZlsnZwfNXDqqqct8wC4\n        WlBK0FLA5gDMtsBLhJ+9HcSLz7qrH3\/AmFtgBJR8ym0uQwG4tGJawNBtE\/3D+Szki9DDhrubZbzb\n        EsCyQBaz3wASmX7sAePDgST+SBToINeGokF0Yn8Qm9ZLTlXMwF\/TjKdXuEewKHnSAPpHDHx1w0MD\n        uYPIcYLHKH7leRmHdyioqiCHdltU9u9inx\/+tNDd73E4FY5iO6DoMPqgLYBtTTLuzzBWVZHL7yIw\n        cw8Zfd8Z0G6754DnYSQ6jm2fd74WQMMzhMpQcdXb7br+s4nYoMd5IDqOnZFcxIWkWPpF64QXkvSG\n        sl7JsiDKeCn9X5go9VqeBlHWD5M0iLJ+mhUquSwfp49ru6X2PwLQFL0wM02BagAAAABJRU5ErkJg\n        gg==\n    \" alt=\"Auto Step icon\" class=\"has-border-color has-ast-global-color-4-border-color\" style=\"border-width:0.5em\"\/><\/figure>\n\n\n\n<div class=\"wp-block-coblocks-accordion\">\n<div class=\"wp-block-coblocks-accordion-item\"><details open><summary class=\"wp-block-coblocks-accordion-item__title\">Basic Configs<\/summary><div class=\"wp-block-coblocks-accordion-item__content\">\n<dl style=\"0 0 -0.7em 0\">\n<dt style=\"font-weight: 300; font-size: 50%; margin: -1em 0 0 0; color: #C3C3C3;\"><\/dt><dd style=\"margin: -0.5em 0 0.1em 1em\">Step Name<\/dd>\n<dt style=\"font-weight: 300; font-size: 50%; margin: -1em 0 0 0; color: #C3C3C3;\"><\/dt><dd style=\"margin: -0.5em 0 0.1em 1em\">Note<\/dd>\n<\/dl>\n<\/div><\/details><\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-coblocks-accordion\">\n<div class=\"wp-block-coblocks-accordion-item\"><details open><summary class=\"wp-block-coblocks-accordion-item__title\">Configs for this Auto Step<\/summary><div class=\"wp-block-coblocks-accordion-item__content\">\n<dl style=\"0 0 -0.7em 0\">\n<dt style=\"font-weight: 300; font-size: 50%; margin: -1em 0 0 0; color: #aaa;\">conf_Auth<\/dt><dd style=\"margin: -0.5em 0 0.1em 1em\">C1: Service Account Setting<span style=\"color:#990000;\"> *<\/span><\/dd>\n<dt style=\"font-weight: 300; font-size: 50%; margin: -1em 0 0 0; color: #aaa;\">conf_FileIds<\/dt><dd style=\"margin: -0.5em 0 0.1em 1em\">C2: File IDs to download (Write one per line)<span style=\"color:#990000;\"> *<\/span><\/dd>\n<dt style=\"font-weight: 300; font-size: 50%; margin: -1em 0 0 0; color: #aaa;\">conf_FileData<\/dt><dd style=\"margin: -0.5em 0 0.1em 1em\">C3: Data item to add the downloaded file<span style=\"color:#990000;\"> *<\/span><\/dd>\n\n<\/dl>\n<\/div><\/details><\/div>\n<\/div>\n\n\n\n<h3 class=\"wp-block-heading\" style=\"margin-top:var(--wp--preset--spacing--60)\"><span style=\"text-decoration: underline;\">Notes<\/span><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>It is required that the files to download be shared in advance with the service account set in [C1: Service Account Setting]<\/li>\n\n\n\n<li>To set up [C1: Service Account Setting] :\n<ol class=\"wp-block-list\">\n<li>Prepare a&nbsp;<a href=\"https:\/\/cloud.google.com\/iam\/docs\/service-account-overview?hl=en\" target=\"_blank\" rel=\"noreferrer noopener\">service account<\/a>&nbsp;on Google Cloud Console\n<ul class=\"wp-block-list\">\n<li>Create or upload a&nbsp;<a href=\"https:\/\/cloud.google.com\/iam\/docs\/service-account-creds?hl=en#key-types\" target=\"_blank\" rel=\"noreferrer noopener\">service account key<\/a>\n<ul class=\"wp-block-list\">\n<li>If you&nbsp;<a href=\"https:\/\/cloud.google.com\/iam\/docs\/keys-create-delete?hl=en#creating\" target=\"_blank\" rel=\"noreferrer noopener\">create a service account key on Google Cloud Console<\/a>, you can download a JSON file including necessary information<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Create an OAuth2 JWT Bearer setting on Questetra BPM Suite and set it to C1\n<ul class=\"wp-block-list\">\n<li>Scope&nbsp;<code>https:\/\/www.googleapis.com\/auth\/drive.readonly<\/code>&nbsp;is required<\/li>\n\n\n\n<li>Set up other items as shown in the table below :<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th><strong>Settings on Questetra BPM Suite<\/strong><\/th><th><strong>Corresponding Information<\/strong><br><strong>of Google Cloud Service Account Key<\/strong><\/th><th><strong>Property Name in JSON<\/strong>&nbsp;File<\/th><th><strong>Required or Not<\/strong><\/th><\/tr><\/thead><tbody><tr><td>Client ID<\/td><td>OAuth2 Client ID<\/td><td>client_id<\/td><td>Not Required<\/td><\/tr><tr><td>Private Key ID<\/td><td>Key ID<\/td><td>private_key_id<\/td><td>Required<\/td><\/tr><tr><td>Private Key<\/td><td>Private Key<\/td><td>private_key<\/td><td>Required<\/td><\/tr><tr><td>Custom Secret Information 1<\/td><td>Email Address<\/td><td>client_email<\/td><td>Required<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<figure class=\"wp-block-image aligncenter size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"609\" data-attachment-id=\"159853\" data-permalink=\"https:\/\/support.questetra.com\/en\/developer-blog\/markdown-basic\/attachment\/google-drive-auth-setting_capture_en\/\" data-orig-file=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2024\/04\/google-drive-auth-setting_capture_en.png?fit=1106%2C658&amp;ssl=1\" data-orig-size=\"1106,658\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"google-drive-auth-setting_capture_en\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2024\/04\/google-drive-auth-setting_capture_en.png?fit=1024%2C609&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2024\/04\/google-drive-auth-setting_capture_en.png?resize=1024%2C609&#038;ssl=1\" alt=\"\" class=\"wp-image-159853\" srcset=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2024\/04\/google-drive-auth-setting_capture_en.png?resize=1024%2C609&amp;ssl=1 1024w, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2024\/04\/google-drive-auth-setting_capture_en.png?resize=529%2C315&amp;ssl=1 529w, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2024\/04\/google-drive-auth-setting_capture_en.png?resize=768%2C457&amp;ssl=1 768w, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2024\/04\/google-drive-auth-setting_capture_en.png?w=1106&amp;ssl=1 1106w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading has-custom-lineheight\" style=\"text-decoration:underline;line-height:2\">Errors<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>\"code\": 403, \"message\": \"Google Drive API has not been used in project 123456789012 before or it is disabled.\"<\/code>.\n<ul class=\"wp-block-list\">\n<li>&#8216;Google Drive API&#8217; needs to be enabled<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><code>\"code\": 404, \"message\": \"File not found:\"<\/code>\n<ul class=\"wp-block-list\">\n<li>The file may not exist<\/li>\n\n\n\n<li>&#8216;Google Service Account&#8217; may not have permission to read the file<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" style=\"margin-top:var(--wp--preset--spacing--60)\"><span style=\"text-decoration: underline;\">Capture<\/span><\/h3>\n\n\n\n<figure class=\"wp-block-image size-full has-custom-border is-style-rounded is-style-rounded--1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1338\" height=\"1202\" data-attachment-id=\"159849\" data-permalink=\"https:\/\/support.questetra.com\/en\/developer-blog\/markdown-basic\/attachment\/google-drive-file-download_caprute_en\/\" data-orig-file=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2024\/04\/google-drive-file-download_caprute_en.png?fit=1338%2C1202&amp;ssl=1\" data-orig-size=\"1338,1202\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"google-drive-file-download_caprute_en\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2024\/04\/google-drive-file-download_caprute_en.png?fit=701%2C630&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2024\/04\/google-drive-file-download_caprute_en.png?resize=1338%2C1202&#038;ssl=1\" alt=\"\" class=\"has-border-color wp-image-159849\" style=\"border-color:#009900;border-width:3px;border-radius:9px\" srcset=\"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2024\/04\/google-drive-file-download_caprute_en.png?w=1338&amp;ssl=1 1338w, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2024\/04\/google-drive-file-download_caprute_en.png?resize=351%2C315&amp;ssl=1 351w, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2024\/04\/google-drive-file-download_caprute_en.png?resize=701%2C630&amp;ssl=1 701w, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2024\/04\/google-drive-file-download_caprute_en.png?resize=768%2C690&amp;ssl=1 768w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" style=\"margin-top:var(--wp--preset--spacing--60)\"><span style=\"text-decoration: underline;\">See Also<\/span><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/support.questetra.com\/en\/bpmn-icons\/intermediate-error-catch-event-boundary-type\/\" target=\"_blank\" rel=\"noreferrer noopener\">Intermediate Error Catch Event (Boundary Type)<\/a><\/li>\n<\/ul>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div class=\"wp-block-coblocks-accordion\">\n<div class=\"wp-block-coblocks-accordion-item\"><details><summary class=\"wp-block-coblocks-accordion-item__title\">Script (click to open)<\/summary><div class=\"wp-block-coblocks-accordion-item__content\">\n<ul class=\"wp-block-list\">\n<li>An XML file that contains the code below is available to download\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/raw.githubusercontent.com\/Questetra\/Addon-XML\/release-2024-11-21\/google-drive-file-download.xml\" target=\"_blank\" rel=\"noreferrer noopener\">google-drive-file-download.xml<\/a> (C) Questetra, Inc. (MIT License)<\/li>\n\n\n\n<li>If you are using Professional, you can modify the contents of this file and use it as your own add-on auto step<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-js\" data-lang=\"JavaScript\"><code>\n\nconst REQUEST_NUM_PER_FILE = 4; \/\/ \u30d5\u30a1\u30a4\u30eb 1 \u3064\u306b\u3064\u304d 4 \u56de\u30ea\u30af\u30a8\u30b9\u30c8\u3092\u884c\u3046\n\nfunction main() {\n    \/\/\/\/\/\/ == \u5de5\u7a0b\u30b3\u30f3\u30d5\u30a3\u30b0\u30fb\u30ef\u30fc\u30af\u30d5\u30ed\u30fc\u30c7\u30fc\u30bf\u306e\u53c2\u7167 \/ Config & Data Retrieving ==\n    const auth = configs.getObject(&#39;conf_Auth&#39;);\n    const fileIds = retrieveFileIds();\n\n    const fileDef = configs.getObject(&#39;conf_FileData&#39;);\n    let files = engine.findData( fileDef );\n    if (files === null) {\n        files = new java.util.ArrayList();\n    }\n\n    \/\/\/\/\/\/ == \u6f14\u7b97 \/ Calculating ==\n    if (fileIds.length * REQUEST_NUM_PER_FILE &gt; httpClient.getRequestingLimit()) {\n        throw new Error(&#39;Number of File IDs exceeds the limit.&#39;);\n    }\n    fileIds.forEach(fileId =&gt; {\n        const {name, contentType} = getFileMetadata(auth, fileId);\n        const content = getFile(auth, fileId);\n        const qfile = new com.questetra.bpms.core.event.scripttask.NewQfile(\n            name, contentType, content\n        );\n        files.add(qfile);\n    });\n\n    \/\/\/\/\/\/ == \u30ef\u30fc\u30af\u30d5\u30ed\u30fc\u30c7\u30fc\u30bf\u3078\u306e\u4ee3\u5165 \/ Data Updating ==\n    engine.setData(fileDef, files);\n}\n\n\/**\n * config \u304b\u3089\u30d5\u30a1\u30a4\u30eb ID \u3092\u8aad\u307f\u51fa\u3059\n * \u30d5\u30a1\u30a4\u30eb ID \u304c\u8a2d\u5b9a\u3055\u308c\u3066\u3044\u306a\u3044\u5834\u5408\u306f\u30a8\u30e9\u30fc\n * @returns {Array&lt;String&gt;} \u30d5\u30a1\u30a4\u30eb ID \u306e\u914d\u5217\n *\/\nconst retrieveFileIds = () =&gt; {\n    let fileIdsStr = configs.get(&#39;conf_FileIds&#39;);\n    const fileIdsDef = configs.getObject(&#39;conf_FileIds&#39;);\n    if (fileIdsDef !== null) {\n        fileIdsStr = engine.findData(fileIdsDef);\n    }\n    if (fileIdsStr === null) {\n        throw new Error(&#39;No File IDs.&#39;);\n    }\n    const fileIds =  fileIdsStr.split(&#39;\\n&#39;).filter(key =&gt; key.length !== 0);\n    if (fileIds.length === 0) {\n        throw new Error(&#39;No File IDs.&#39;);\n    }\n    return fileIds;\n};\n\nconst URL_TOKEN_REQUEST = &#39;https:\/\/oauth2.googleapis.com\/token&#39;;\nconst SCOPE = &#39;https:\/\/www.googleapis.com\/auth\/drive.readonly&#39;;\n\n\/**\n * @param auth HTTP \u8a8d\u8a3c\u8a2d\u5b9a\n * @returns {any} \u30a2\u30af\u30bb\u30b9\u30c8\u30fc\u30af\u30f3\u3092\u542b\u3080\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\n *\/\nconst getAccessToken = (auth) =&gt; {\n    const privateKeyId = auth.getPrivateKeyId();\n    const privateKey = auth.getPrivateKey();\n    const serviceAccount = auth.getCustomSecret1();\n    const scope = auth.getScope();\n    if (!scope.split(&#39; &#39;).includes(SCOPE)) {\n        throw new Error(`Scope ${SCOPE} must be included in the scope.`);\n    }\n    if (privateKeyId === &#39;&#39;) {\n        throw new Error(&#39;Private Key ID is required.&#39;);\n    }\n    if (privateKey === &#39;&#39;) {\n        throw new Error(&#39;Private Key is required.&#39;);\n    }\n    if (serviceAccount === &#39;&#39;) {\n        throw new Error(&#39;Service Account must be set to Custom Secret 1.&#39;);\n    }\n    const header = {\n        &quot;alg&quot;: &quot;RS256&quot;,\n        &quot;typ&quot;: &quot;at+jwt&quot;,\n        &quot;kid&quot;: privateKeyId\n    };\n    const now = Math.floor(Date.now() \/ 1000);\n    const payload = {\n        &quot;iss&quot;: serviceAccount,\n        &quot;aud&quot;: URL_TOKEN_REQUEST,\n        &quot;sub&quot;: &#39;&#39;,\n        &quot;iat&quot;: now,\n        &quot;exp&quot;: now + 3600,\n        \/**\n         * https:\/\/developers.google.com\/identity\/protocols\/oauth2\/service-account#jwt-auth\n         * &quot;without OAuth&quot; \u306e\u8a71\u3060\u304c\u3001OAuth \u3067\u3082 1 hour \u306b\u306a\u308b\u3088\u3046\u3060\u3002\n         * 1 hour \u3088\u308a\u9577\u3051\u308c\u3070\u30a8\u30e9\u30fc\u3002\u77ed\u3051\u308c\u3070\u30011 hour \u306e\u30c8\u30fc\u30af\u30f3\u304c\u8fd4\u3063\u3066\u304f\u308b\u3002\n         *\/\n        scope\n    };\n    const keyB = rsa.readKeyFromPkcs8(privateKey);\n    const assertion = jwt.build(header, payload, keyB);\n\n    const response = httpClient.begin()\n        .formParam(&quot;grant_type&quot;, &quot;urn:ietf:params:oauth:grant-type:jwt-bearer&quot;)\n        .formParam(&#39;assertion&#39;, assertion)\n        .post(URL_TOKEN_REQUEST);\n    const responseText = response.getResponseAsString();\n    if (response.getStatusCode() !== 200) {\n        engine.log(responseText);\n        throw new Error(`Failed to get Access token. status: ${response.getStatusCode()}`);\n    }\n    const result = JSON.parse(response.getResponseAsString());\n    if (result.access_token === undefined) {\n        engine.log(responseText);\n        throw new Error(`Failed to get Access token. access token not found.`);\n    }\n    return result;\n};\n\n\/**\n * \u30d5\u30a1\u30a4\u30eb\u30e1\u30bf\u30c7\u30fc\u30bf\u53d6\u5f97\n * @param auth HTTP \u8a8d\u8a3c\u8a2d\u5b9a\n * @param fileId \u30d5\u30a1\u30a4\u30ebID\n *\/\nconst getFileMetadata = (auth, fileId) =&gt; {\n    const URL = `https:\/\/www.googleapis.com\/drive\/v3\/files\/${encodeURIComponent(fileId)}`;\n\n    const response = httpClient.begin()\n        .oauth2JwtBearer(auth, () =&gt; getAccessToken(auth))\n        .queryParam(&quot;supportsAllDrives&quot;, &quot;true&quot;)\n        .get(URL);\n\n    const status = response.getStatusCode();\n    const respTxt = response.getResponseAsString();\n    if (status !== 200) {\n        engine.log(respTxt);\n        throw new Error(`Failed to get metadata of file. status: ${status}`);\n    }\n    const respJson = JSON.parse(respTxt);\n    return {\n        name: respJson.name,\n        contentType: respJson.mimeType\n    };\n};\n\n\/**\n * \u30d5\u30a1\u30a4\u30eb\u53d6\u5f97\n * @param auth HTTP \u8a8d\u8a3c\u8a2d\u5b9a\n * @param fileId \u30d5\u30a1\u30a4\u30ebID\n *\/\nconst getFile = (auth, fileId) =&gt; {\n    const URL = `https:\/\/www.googleapis.com\/drive\/v3\/files\/${encodeURIComponent(fileId)}`;\n\n    const response = httpClient.begin()\n        .oauth2JwtBearer(auth, () =&gt; getAccessToken(auth))\n        .queryParam(&quot;supportsAllDrives&quot;, &quot;true&quot;)\n        .queryParam(&quot;alt&quot;, &quot;media&quot;)\n        .get(URL);\n\n    const status = response.getStatusCode();\n    const respTxt = response.getResponseAsString();\n    if (status !== 200) {\n        engine.log(respTxt);\n        throw new Error(`Failed to download file. status: ${status}`);\n    }\n    return response.getResponse();\n};\n<\/code><\/pre><\/div>\n<\/div><\/details><\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>This item downloads the specified files on Google Drive. You can download multiple files at once. When you download multiple files, you should write one File ID per line.<\/p>\n","protected":false},"author":17,"featured_media":168834,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_coblocks_attr":"","_coblocks_dimensions":"","_coblocks_responsive_height":"","_coblocks_accordion_ie_support":"","_uag_custom_page_level_css":"","advanced_seo_description":"","jetpack_seo_html_title":"","jetpack_seo_noindex":false,"jetpack_seo_schema_type":"","_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_wpcom_ai_launchpad_first_post":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"{title}\n\n{excerpt}\n\n{url}","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"_wpas_customize_per_network":false,"jetpack_post_was_ever_published":false},"categories":[551],"tags":[398,3162],"class_list":["post-159848","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-bpmn-icons","tag-google-drive-api-v3","tag-google-workspace"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2024\/12\/bpmn-icon-service-task-google-drive2024.png?fit=1200%2C675&ssl=1","uagb_featured_image_src":{"full":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2024\/12\/bpmn-icon-service-task-google-drive2024.png?fit=1200%2C675&ssl=1",1200,675,false],"thumbnail":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2024\/12\/bpmn-icon-service-task-google-drive2024.png?resize=440%2C440&ssl=1",440,440,true],"medium":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2024\/12\/bpmn-icon-service-task-google-drive2024.png?fit=560%2C315&ssl=1",560,315,true],"medium_large":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2024\/12\/bpmn-icon-service-task-google-drive2024.png?fit=768%2C432&ssl=1",768,432,true],"large":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2024\/12\/bpmn-icon-service-task-google-drive2024.png?fit=1024%2C576&ssl=1",1024,576,true],"1536x1536":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2024\/12\/bpmn-icon-service-task-google-drive2024.png?fit=1200%2C675&ssl=1",1200,675,true],"2048x2048":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2024\/12\/bpmn-icon-service-task-google-drive2024.png?fit=1200%2C675&ssl=1",1200,675,true],"newspack-article-block-landscape-large":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2024\/12\/bpmn-icon-service-task-google-drive2024.png?resize=1200%2C675&ssl=1",1200,675,true],"newspack-article-block-portrait-large":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2024\/12\/bpmn-icon-service-task-google-drive2024.png?resize=900%2C675&ssl=1",900,675,true],"newspack-article-block-square-large":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2024\/12\/bpmn-icon-service-task-google-drive2024.png?resize=1200%2C675&ssl=1",1200,675,true],"newspack-article-block-landscape-medium":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2024\/12\/bpmn-icon-service-task-google-drive2024.png?resize=800%2C600&ssl=1",800,600,true],"newspack-article-block-portrait-medium":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2024\/12\/bpmn-icon-service-task-google-drive2024.png?resize=600%2C675&ssl=1",600,675,true],"newspack-article-block-square-medium":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2024\/12\/bpmn-icon-service-task-google-drive2024.png?resize=800%2C675&ssl=1",800,675,true],"newspack-article-block-landscape-intermediate":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2024\/12\/bpmn-icon-service-task-google-drive2024.png?resize=600%2C450&ssl=1",600,450,true],"newspack-article-block-portrait-intermediate":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2024\/12\/bpmn-icon-service-task-google-drive2024.png?resize=450%2C600&ssl=1",450,600,true],"newspack-article-block-square-intermediate":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2024\/12\/bpmn-icon-service-task-google-drive2024.png?resize=600%2C600&ssl=1",600,600,true],"newspack-article-block-landscape-small":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2024\/12\/bpmn-icon-service-task-google-drive2024.png?resize=400%2C300&ssl=1",400,300,true],"newspack-article-block-portrait-small":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2024\/12\/bpmn-icon-service-task-google-drive2024.png?resize=300%2C400&ssl=1",300,400,true],"newspack-article-block-square-small":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2024\/12\/bpmn-icon-service-task-google-drive2024.png?resize=400%2C400&ssl=1",400,400,true],"newspack-article-block-landscape-tiny":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2024\/12\/bpmn-icon-service-task-google-drive2024.png?resize=200%2C150&ssl=1",200,150,true],"newspack-article-block-portrait-tiny":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2024\/12\/bpmn-icon-service-task-google-drive2024.png?resize=150%2C200&ssl=1",150,200,true],"newspack-article-block-square-tiny":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2024\/12\/bpmn-icon-service-task-google-drive2024.png?resize=200%2C200&ssl=1",200,200,true],"newspack-article-block-uncropped":["https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2024\/12\/bpmn-icon-service-task-google-drive2024.png?fit=1200%2C675&ssl=1",1200,675,true]},"uagb_author_info":{"display_name":"Shiho Tatsumi","author_link":"https:\/\/support.questetra.com\/en\/author\/tatsumi48c607ec82\/"},"uagb_comment_info":0,"uagb_excerpt":"This item downloads the specified files on Google Drive. You can download multiple files at once. When you download multiple files, you should write one File ID per line.","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p9DiIh-FAc","jetpack_likes_enabled":true,"jetpack-related-posts":[{"id":76390,"url":"https:\/\/support.questetra.com\/en\/bpmn-icons\/service-task-google-drive-file-upload\/","url_meta":{"origin":159848,"position":0},"title":"Google Drive: File Upload","author":"Hirotaka NISHI","date":"2019-04-23","format":false,"excerpt":"Uploads files specified in File Type Data Item to the specified folder of Google Drive. Capable of obtaining the file ID, the display URL, and the download URL as the response and storing them in a String type Data Item.","rel":"","context":"In &quot;BPMN Icons&quot;","block_context":{"text":"BPMN Icons","link":"https:\/\/support.questetra.com\/en\/category\/bpmn-icons\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2024\/12\/bpmn-icon-service-task-google-drive2024.png?fit=1200%2C675&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2024\/12\/bpmn-icon-service-task-google-drive2024.png?fit=1200%2C675&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2024\/12\/bpmn-icon-service-task-google-drive2024.png?fit=1200%2C675&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2024\/12\/bpmn-icon-service-task-google-drive2024.png?fit=1200%2C675&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2024\/12\/bpmn-icon-service-task-google-drive2024.png?fit=1200%2C675&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":74763,"url":"https:\/\/support.questetra.com\/en\/developer-blog\/google-drive-items\/","url_meta":{"origin":159848,"position":1},"title":"Utilizing Google Drive from Workflow &#8211; Sending files to people outside the company","author":"Hirotaka NISHI","date":"2020-10-30","format":false,"excerpt":"Google Drive is a cloud storage service offered by Google. I will explain automatic Step for utilizing Google Drive in a Workflow App.","rel":"","context":"In &quot;Questetra Developers Blog&quot;","block_context":{"text":"Questetra Developers Blog","link":"https:\/\/support.questetra.com\/en\/category\/developer-blog\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2020\/10\/google-drive-questetra.png?fit=1200%2C675&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2020\/10\/google-drive-questetra.png?fit=1200%2C675&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2020\/10\/google-drive-questetra.png?fit=1200%2C675&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2020\/10\/google-drive-questetra.png?fit=1200%2C675&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2020\/10\/google-drive-questetra.png?fit=1200%2C675&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":67251,"url":"https:\/\/support.questetra.com\/en\/addons\/googledrive-simpleupload\/","url_meta":{"origin":159848,"position":2},"title":"Google Drive Upload","author":"Hirotaka NISHI","date":"2017-11-27","format":false,"excerpt":"Uploads the file specified by File type data item to the specified directory of Google Drive, and stores its communication log in a String type data item Data Input B\u2019: File(s) stored in the Data Item selected at config B C\u2019: Google Drive folder ID stored in the Data Item\u2026","rel":"","context":"In &quot;Add-ons&quot;","block_context":{"text":"Add-ons","link":"https:\/\/support.questetra.com\/en\/category\/addons\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2017\/11\/google-drive-upload-header.png?fit=1200%2C675&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2017\/11\/google-drive-upload-header.png?fit=1200%2C675&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2017\/11\/google-drive-upload-header.png?fit=1200%2C675&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2017\/11\/google-drive-upload-header.png?fit=1200%2C675&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2017\/11\/google-drive-upload-header.png?fit=1200%2C675&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":79282,"url":"https:\/\/support.questetra.com\/en\/addons\/google-drive-file-download\/","url_meta":{"origin":159848,"position":3},"title":"Google Drive: File; Download","author":"IMAMURA, Genichi","date":"2019-09-12","format":false,"excerpt":"Downloads the specified file in the Drive to the Workflow Data Item. If a Google File (Docs \/ Sheets \/ Slides, etc.) is specified, an error will occur (Please use File Export). The File ID can be obtained from the sharing settings screen.","rel":"","context":"In &quot;Add-ons&quot;","block_context":{"text":"Add-ons","link":"https:\/\/support.questetra.com\/en\/category\/addons\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2019\/09\/Google-Drive-File-Download-en.png?fit=1200%2C675&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2019\/09\/Google-Drive-File-Download-en.png?fit=1200%2C675&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2019\/09\/Google-Drive-File-Download-en.png?fit=1200%2C675&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2019\/09\/Google-Drive-File-Download-en.png?fit=1200%2C675&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2019\/09\/Google-Drive-File-Download-en.png?fit=1200%2C675&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":170965,"url":"https:\/\/support.questetra.com\/en\/developer-blog\/google-drive-pdf-export\/","url_meta":{"origin":159848,"position":4},"title":"Create a PDF File Using Google Drive","author":"komatsuquestetra","date":"2025-02-25","format":false,"excerpt":"Learn how to create PDF files using automated steps in Google Drive.","rel":"","context":"In &quot;Questetra Developers Blog&quot;","block_context":{"text":"Questetra Developers Blog","link":"https:\/\/support.questetra.com\/en\/category\/developer-blog\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2025\/01\/p2448415-1614-2-1.png?fit=1200%2C686&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2025\/01\/p2448415-1614-2-1.png?fit=1200%2C686&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2025\/01\/p2448415-1614-2-1.png?fit=1200%2C686&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2025\/01\/p2448415-1614-2-1.png?fit=1200%2C686&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2025\/01\/p2448415-1614-2-1.png?fit=1200%2C686&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":79303,"url":"https:\/\/support.questetra.com\/en\/addons\/google-drive-gfile-export-as-pdf\/","url_meta":{"origin":159848,"position":5},"title":"Google Drive: GFile; Export as PDF","author":"IMAMURA, Genichi","date":"2019-09-12","format":false,"excerpt":"Exports the specified file in the Drive to the Workflow Data Item in PDF format. If a file other than a Google file (Docs \/ Sheets \/ Slides etc.) is specified, an error will occur (Please use File Download). File ID can be obtained from URI.","rel":"","context":"In &quot;Add-ons&quot;","block_context":{"text":"Add-ons","link":"https:\/\/support.questetra.com\/en\/category\/addons\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2019\/09\/Google-Drive-GFile-Export-as-PDF-en.png?fit=1200%2C675&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2019\/09\/Google-Drive-GFile-Export-as-PDF-en.png?fit=1200%2C675&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2019\/09\/Google-Drive-GFile-Export-as-PDF-en.png?fit=1200%2C675&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2019\/09\/Google-Drive-GFile-Export-as-PDF-en.png?fit=1200%2C675&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/support.questetra.com\/wp-content\/uploads\/2019\/09\/Google-Drive-GFile-Export-as-PDF-en.png?fit=1200%2C675&ssl=1&resize=1050%2C600 3x"},"classes":[]}],"amp_enabled":false,"_links":{"self":[{"href":"https:\/\/support.questetra.com\/en\/wp-json\/wp\/v2\/posts\/159848","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/support.questetra.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/support.questetra.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/support.questetra.com\/en\/wp-json\/wp\/v2\/users\/17"}],"replies":[{"embeddable":true,"href":"https:\/\/support.questetra.com\/en\/wp-json\/wp\/v2\/comments?post=159848"}],"version-history":[{"count":9,"href":"https:\/\/support.questetra.com\/en\/wp-json\/wp\/v2\/posts\/159848\/revisions"}],"predecessor-version":[{"id":171364,"href":"https:\/\/support.questetra.com\/en\/wp-json\/wp\/v2\/posts\/159848\/revisions\/171364"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/support.questetra.com\/en\/wp-json\/wp\/v2\/media\/168834"}],"wp:attachment":[{"href":"https:\/\/support.questetra.com\/en\/wp-json\/wp\/v2\/media?parent=159848"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/support.questetra.com\/en\/wp-json\/wp\/v2\/categories?post=159848"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/support.questetra.com\/en\/wp-json\/wp\/v2\/tags?post=159848"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}