From befae167d7e687b84f2d1189737f263219f7e4a3 Mon Sep 17 00:00:00 2001 From: "github-merge-queue[bot]" Date: Fri, 7 Feb 2025 03:24:05 +0000 Subject: [PATCH] deploy: f74c3a9dc0389a90d9bd13f02a48f4573dd20d9e --- 404.html | 2 +- assets/js/f19dbf9b.01e364f3.js | 1 - assets/js/f19dbf9b.cb9bb5f6.js | 1 + ...n.9660d91b.js => runtime~main.007d2300.js} | 2 +- blog/2016/07/uppy-begins/index.html | 2 +- blog/2016/08/0.8.0/index.html | 2 +- blog/2016/08/0.9.0/index.html | 2 +- blog/2016/09/0.10/index.html | 2 +- blog/2016/11/0.11/index.html | 2 +- blog/2016/12/0.12/index.html | 2 +- blog/2017/02/0.14/index.html | 2 +- blog/2017/03/0.15/index.html | 2 +- blog/2017/05/0.16/index.html | 2 +- blog/2017/05/0.17/index.html | 2 +- blog/2017/07/golden-retriever/index.html | 2 +- blog/2017/08/0.18/index.html | 2 +- blog/2017/09/0.19/index.html | 2 +- blog/2017/10/0.20/index.html | 2 +- blog/2017/10/0.21/index.html | 2 +- blog/2017/12/0.22/index.html | 2 +- blog/2018/02/0.23/index.html | 2 +- blog/2018/04/0.24/index.html | 2 +- blog/2018/06/0.25/index.html | 2 +- blog/2018/07/0.26/index.html | 2 +- blog/2018/08/0.27/index.html | 2 +- blog/2018/10/0.28/index.html | 2 +- blog/2018/12/0.29/index.html | 2 +- blog/2019/03/0.30/index.html | 2 +- blog/2019/03/liftoff-01/index.html | 2 +- blog/2019/03/liftoff-02/index.html | 2 +- blog/2019/03/liftoff-03/index.html | 2 +- blog/2019/03/liftoff-04/index.html | 2 +- blog/2019/03/liftoff-05/index.html | 2 +- blog/2019/03/liftoff-06/index.html | 2 +- blog/2019/04/1.0/index.html | 2 +- blog/2019/04/liftoff-07/index.html | 2 +- blog/2019/04/liftoff-08/index.html | 2 +- blog/2019/04/liftoff-09/index.html | 2 +- blog/2019/04/liftoff-10/index.html | 2 +- blog/2019/04/liftoff-11/index.html | 2 +- blog/2019/04/liftoff-12/index.html | 2 +- blog/2019/04/liftoff-13/index.html | 2 +- blog/2019/04/liftoff-14/index.html | 2 +- blog/2019/04/liftoff-15/index.html | 2 +- blog/2019/04/liftoff-16/index.html | 2 +- blog/2019/04/liftoff-17/index.html | 2 +- blog/2019/04/liftoff-18/index.html | 2 +- blog/2019/04/liftoff-19/index.html | 2 +- blog/2019/04/liftoff-20/index.html | 2 +- blog/2019/04/liftoff-21/index.html | 2 +- blog/2019/04/liftoff-22/index.html | 2 +- blog/2019/04/liftoff-23/index.html | 2 +- blog/2019/04/liftoff-24/index.html | 2 +- blog/2019/04/liftoff-25/index.html | 2 +- blog/2019/04/liftoff-26/index.html | 2 +- blog/2019/04/liftoff-27/index.html | 2 +- blog/2019/04/liftoff-28/index.html | 2 +- blog/2019/04/liftoff-29/index.html | 2 +- blog/2019/04/liftoff-30/index.html | 2 +- blog/2019/08/1.3/index.html | 2 +- blog/2019/10/1.5/index.html | 2 +- blog/2019/11/1.6/index.html | 2 +- blog/2019/12/1.7/index.html | 2 +- blog/2020/03/1.9/index.html | 2 +- blog/2020/03/custom-providers/index.html | 2 +- blog/2020/04/1.10/index.html | 2 +- blog/2020/04/1.13/index.html | 2 +- blog/2020/07/1.18-image-editor/index.html | 2 +- blog/2020/09/companion-2.0/index.html | 2 +- blog/2020/10/1.22/index.html | 2 +- blog/2020/11/1.23/index.html | 2 +- blog/2020/12/1.24/index.html | 2 +- blog/2021/01/1.25/index.html | 2 +- blog/2021/02/1.26/index.html | 2 +- blog/2021/04/1.27/index.html | 2 +- blog/2021/05/1.29/index.html | 2 +- blog/2021/07/1.30/index.html | 2 +- blog/2021/08/2.0/index.html | 2 +- blog/2021/12/2.1-2.3/index.html | 2 +- blog/2022/03/2.4-2.7/index.html | 2 +- blog/2022/09/3.0/index.html | 2 +- blog/2022/12/3.3/index.html | 2 +- blog/2023-05-new-website/index.html | 2 +- blog/2023-10-25-image-editor/index.html | 2 +- blog/2023/07/3.13-3.21/index.html | 2 +- blog/2023/07/3.3-3.13/index.html | 2 +- blog/archive/index.html | 2 +- blog/index.html | 2 +- blog/page/2/index.html | 2 +- blog/page/3/index.html | 2 +- blog/page/4/index.html | 2 +- blog/page/5/index.html | 2 +- blog/page/6/index.html | 2 +- blog/page/7/index.html | 2 +- blog/page/8/index.html | 2 +- blog/page/9/index.html | 2 +- blog/uppy-4.0/index.html | 2 +- docs/angular/index.html | 2 +- docs/audio/index.html | 2 +- docs/aws-s3/index.html | 2 +- docs/box/index.html | 2 +- docs/companion/index.html | 2 +- docs/compressor/index.html | 2 +- docs/dashboard/index.html | 2 +- docs/drag-drop/index.html | 2 +- docs/drop-target/index.html | 2 +- docs/dropbox/index.html | 2 +- docs/facebook/index.html | 2 +- docs/file-input/index.html | 2 +- docs/form/index.html | 2 +- docs/golden-retriever/index.html | 2 +- docs/google-drive-picker/index.html | 40 ++++++++++++++----- docs/google-drive/index.html | 2 +- docs/google-photos-picker/index.html | 2 +- docs/google-photos/index.html | 2 +- docs/guides/browser-support/index.html | 2 +- docs/guides/building-plugins/index.html | 2 +- .../building-your-own-ui-with-uppy/index.html | 2 +- docs/guides/choosing-uploader/index.html | 2 +- docs/guides/custom-stores/index.html | 2 +- docs/guides/migration-guides/index.html | 2 +- docs/image-editor/index.html | 2 +- docs/index.html | 2 +- docs/informer/index.html | 2 +- docs/instagram/index.html | 2 +- docs/locales/index.html | 2 +- docs/nextjs/index.html | 2 +- docs/onedrive/index.html | 2 +- docs/progress-bar/index.html | 2 +- docs/quick-start/index.html | 2 +- docs/react/index.html | 2 +- docs/reactrouter/index.html | 2 +- docs/remote-sources/index.html | 2 +- docs/screen-capture/index.html | 2 +- docs/status-bar/index.html | 2 +- docs/svelte/index.html | 2 +- docs/sveltekit/index.html | 2 +- docs/thumbnail-generator/index.html | 2 +- docs/transloadit/index.html | 2 +- docs/tus/index.html | 2 +- docs/unsplash/index.html | 2 +- docs/uppy/index.html | 2 +- docs/url/index.html | 2 +- docs/vue/index.html | 2 +- docs/webcam/index.html | 2 +- docs/webdav/index.html | 2 +- docs/xhr-upload/index.html | 2 +- docs/zoom/index.html | 2 +- examples/index.html | 2 +- index.html | 2 +- privacy-policy/index.html | 2 +- search/index.html | 2 +- 152 files changed, 180 insertions(+), 160 deletions(-) delete mode 100644 assets/js/f19dbf9b.01e364f3.js create mode 100644 assets/js/f19dbf9b.cb9bb5f6.js rename assets/js/{runtime~main.9660d91b.js => runtime~main.007d2300.js} (99%) diff --git a/404.html b/404.html index 814d89d87..2bede743d 100644 --- a/404.html +++ b/404.html @@ -13,7 +13,7 @@ - + diff --git a/assets/js/f19dbf9b.01e364f3.js b/assets/js/f19dbf9b.01e364f3.js deleted file mode 100644 index 3513f5b08..000000000 --- a/assets/js/f19dbf9b.01e364f3.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkuppy_io=self.webpackChunkuppy_io||[]).push([[610],{45272:(e,n,o)=>{o.d(n,{Ay:()=>d,RM:()=>l});var i=o(74848),s=o(28453);const l=[{value:"id",id:"id",level:4},{value:"title",id:"title",level:4},{value:"target",id:"target",level:4},{value:"companionUrl",id:"companionurl",level:4},{value:"companionHeaders",id:"companionheaders",level:4},{value:"companionAllowedHosts",id:"companionallowedhosts",level:4},{value:"companionCookiesRule",id:"companioncookiesrule",level:4},{value:"locale",id:"locale",level:4},{value:"storage",id:"storage",level:4}];function r(e){const n={a:"a",code:"code",h4:"h4",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,s.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.h4,{id:"id",children:(0,i.jsx)(n.code,{children:"id"})}),"\n",(0,i.jsxs)(n.p,{children:["A unique identifier for this plugin (",(0,i.jsx)(n.code,{children:"string"}),", default is a unique ID for each\nplugin)."]}),"\n",(0,i.jsx)(n.h4,{id:"title",children:(0,i.jsx)(n.code,{children:"title"})}),"\n",(0,i.jsxs)(n.p,{children:["Title / name shown in the UI, such as Dashboard tabs (",(0,i.jsx)(n.code,{children:"string"}),", default is the\nname of the plugin)."]}),"\n",(0,i.jsx)(n.h4,{id:"target",children:(0,i.jsx)(n.code,{children:"target"})}),"\n",(0,i.jsxs)(n.p,{children:["DOM element, CSS selector, or plugin to place the drag and drop area into\n(",(0,i.jsx)(n.code,{children:"string"}),", ",(0,i.jsx)(n.code,{children:"Element"}),", ",(0,i.jsx)(n.code,{children:"Function"}),", or ",(0,i.jsx)(n.code,{children:"UIPlugin"}),", default:\n",(0,i.jsx)(n.a,{href:"/docs/dashboard",children:(0,i.jsx)(n.code,{children:"Dashboard"})}),")."]}),"\n",(0,i.jsx)(n.h4,{id:"companionurl",children:(0,i.jsx)(n.code,{children:"companionUrl"})}),"\n",(0,i.jsxs)(n.p,{children:["URL to a ",(0,i.jsx)(n.a,{href:"/docs/companion",children:"Companion"})," instance (",(0,i.jsx)(n.code,{children:"string"}),", default: ",(0,i.jsx)(n.code,{children:"null"}),")."]}),"\n",(0,i.jsx)(n.h4,{id:"companionheaders",children:(0,i.jsx)(n.code,{children:"companionHeaders"})}),"\n",(0,i.jsxs)(n.p,{children:["Custom headers that should be sent along to ",(0,i.jsx)(n.a,{href:"/docs/companion",children:"Companion"})," on\nevery request (",(0,i.jsx)(n.code,{children:"Object"}),", default: ",(0,i.jsx)(n.code,{children:"{}"}),")."]}),"\n",(0,i.jsx)(n.h4,{id:"companionallowedhosts",children:(0,i.jsx)(n.code,{children:"companionAllowedHosts"})}),"\n",(0,i.jsxs)(n.p,{children:["The valid and authorised URL(s) from which OAuth responses should be accepted\n(",(0,i.jsx)(n.code,{children:"string"})," or ",(0,i.jsx)(n.code,{children:"RegExp"})," or ",(0,i.jsx)(n.code,{children:"Array"}),"). This option is useful when you have your\n",(0,i.jsx)(n.a,{href:"/docs/companion",children:"Companion"})," running on several hosts. Otherwise, the default\nvalue should do fine, which uses the origin of ",(0,i.jsx)(n.code,{children:"companionUrl"}),"."]}),"\n",(0,i.jsxs)(n.p,{children:["This value can be a ",(0,i.jsx)(n.code,{children:"string"}),", a ",(0,i.jsx)(n.code,{children:"RegExp"})," pattern, or an ",(0,i.jsx)(n.code,{children:"Array"})," of these.\nStrings are evaluated as regular expressions too and will be wrapped in a RegExp\nlike so:"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-js",children:"new RegExp(`^${value}$`);\n"})}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.strong,{children:"Important:"})," You must escape regex characters like ",(0,i.jsx)(n.code,{children:"."}),", or you might open your\napp up to security vulnerabilities."]}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["Example correct strings","\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"'^(?:.*\\\\.)?example\\.com$'"})," matches ",(0,i.jsx)(n.code,{children:"example.com"})," and all of its\nsubdomains."]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"'https://example\\.com'"})," matches ",(0,i.jsx)(n.code,{children:"https://example.com"})," only."]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(n.li,{children:["Example vulnerability: ",(0,i.jsx)(n.code,{children:"'https://www.example.com'"})," would allow an attacker\nwith the domain ",(0,i.jsx)(n.code,{children:"wwwxexample.com"})," to forge and inject a fraudulent token into\nUppy."]}),"\n"]}),"\n",(0,i.jsx)(n.h4,{id:"companioncookiesrule",children:(0,i.jsx)(n.code,{children:"companionCookiesRule"})}),"\n",(0,i.jsxs)(n.p,{children:["This option correlates to the\n",(0,i.jsx)(n.a,{href:"https://developer.mozilla.org/en-US/docs/Web/API/Request/credentials",children:"RequestCredentials value"}),"\n(",(0,i.jsx)(n.code,{children:"string"}),", default: ",(0,i.jsx)(n.code,{children:"'same-origin'"}),")."]}),"\n",(0,i.jsxs)(n.p,{children:["This tells the plugin whether to send cookies to ",(0,i.jsx)(n.a,{href:"/docs/companion",children:"Companion"}),"."]}),"\n",(0,i.jsx)(n.h4,{id:"locale",children:(0,i.jsx)(n.code,{children:"locale"})}),"\n",(0,i.jsxs)(n.p,{children:["An object with ",(0,i.jsx)(n.code,{children:"strings"})," property containing additional i18n strings. The key is\nthe i18n key and the value is the English string."]}),"\n",(0,i.jsx)(n.p,{children:"Example:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-js",children:"{\n\tstrings: {\n\t\tsomeKey: 'Some English string',\n\t},\n}\n"})}),"\n",(0,i.jsx)(n.h4,{id:"storage",children:(0,i.jsx)(n.code,{children:"storage"})}),"\n",(0,i.jsxs)(n.p,{children:["A custom storage to be used for the plugin\u2019s persistent data. Type ",(0,i.jsx)(n.code,{children:"AsyncStore"}),",\ndefault is ",(0,i.jsx)(n.code,{children:"LocalStorage"}),"."]})]})}function d(e={}){const{wrapper:n}={...(0,s.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(r,{...e})}):r(e)}},72965:(e,n,o)=>{o.r(n),o.d(n,{assets:()=>p,contentTitle:()=>a,default:()=>x,frontMatter:()=>t,metadata:()=>h,toc:()=>u});var i=o(74848),s=o(28453),l=o(11470),r=o(19365),d=o(65171),c=o(45272);const t={slug:"/google-drive-picker"},a="Google Drive Picker",h={id:"sources/companion-plugins/google-drive-picker",title:"Google Drive Picker",description:"The @uppy/google-drive-picker plugin lets users import files from their",source:"@site/docs/sources/companion-plugins/google-drive-picker.mdx",sourceDirName:"sources/companion-plugins",slug:"/google-drive-picker",permalink:"/docs/google-drive-picker",draft:!1,unlisted:!1,editUrl:"https://github.com/transloadit/uppy.io/blob/main/docs/sources/companion-plugins/google-drive-picker.mdx",tags:[],version:"current",frontMatter:{slug:"/google-drive-picker"},sidebar:"tutorialSidebar",previous:{title:"Facebook",permalink:"/docs/facebook"},next:{title:"Google Drive",permalink:"/docs/google-drive"}},p={},u=[{value:"When should I use this?",id:"when-should-i-use-this",level:2},{value:"Use",id:"use",level:2},{value:"Initial setup",id:"initial-setup",level:3},{value:"Use in Uppy",id:"use-in-uppy",level:3},{value:"Use with Transloadit",id:"use-with-transloadit",level:3},{value:"Use in Companion",id:"use-in-companion",level:3},{value:"API",id:"api",level:2},{value:"Options",id:"options",level:3},...c.RM,{value:"clientId",id:"clientid",level:4},{value:"apiKey",id:"apikey",level:4},{value:"appId",id:"appid",level:4}];function g(e){const n={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",li:"li",p:"p",pre:"pre",ul:"ul",...(0,s.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.h1,{id:"google-drive-picker",children:"Google Drive Picker"}),"\n",(0,i.jsxs)(n.p,{children:["The ",(0,i.jsx)(n.code,{children:"@uppy/google-drive-picker"})," plugin lets users import files from their\n",(0,i.jsx)(n.a,{href:"https://drive.google.com",children:"Google Drive"})," account using the new\n",(0,i.jsx)(n.a,{href:"https://developers.google.com/drive/picker",children:"Picker API"}),"."]}),"\n",(0,i.jsxs)(n.p,{children:["A ",(0,i.jsx)(n.a,{href:"/docs/companion",children:"Companion"})," instance is required for the Google Drive Picker\nplugin to work. Companion downloads the files from Google Drive, and uploads\nthem to the destination. This saves the user bandwidth, especially helpful if\nthey are on a mobile connection."]}),"\n",(0,i.jsxs)(n.p,{children:["You can self-host Companion or get a hosted version with any\n",(0,i.jsx)(n.a,{href:"https://transloadit.com/pricing/",children:"Transloadit plan"}),"."]}),"\n",(0,i.jsxs)(n.p,{children:["See also ",(0,i.jsx)(n.a,{href:"/docs/google-photos-picker",children:"Google Photos Picker"}),"."]}),"\n",(0,i.jsx)(n.h2,{id:"when-should-i-use-this",children:"When should I use this?"}),"\n",(0,i.jsxs)(n.p,{children:["When you want to let users import files from their\n",(0,i.jsx)(n.a,{href:"https://drive.google.com",children:"Google Drive"})," account."]}),"\n",(0,i.jsxs)(n.p,{children:["You should use this plugin over our other\n",(0,i.jsx)(n.a,{href:"/docs/google-drive",children:"Google Drive plugin"})," if you want to avoid using a\nrestricted API scope, which requires CASA Tier 2 compliance."]}),"\n",(0,i.jsx)(n.p,{children:"The downside of using the Picker UI made by Google is less controls, inability\nto select folders, downloading an additional bundle, and a less consistent user\nexperience."}),"\n",(0,i.jsxs)(l.A,{children:[(0,i.jsx)(r.A,{value:"npm",label:"NPM",default:!0,children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-shell",children:"npm install @uppy/google-drive-picker\n"})})}),(0,i.jsx)(r.A,{value:"yarn",label:"Yarn",children:(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-shell",children:"yarn add @uppy/google-drive-picker\n"})})}),(0,i.jsx)(r.A,{value:"cdn",label:"CDN",children:(0,i.jsx)(d.A,{children:'\n import { Uppy, GoogleDrivePicker } from "{{UPPY_JS_URL}}"\n const uppy = new Uppy()\n uppy.use(GoogleDrivePicker, {\n // Options\n })\n '})})]}),"\n",(0,i.jsx)(n.h2,{id:"use",children:"Use"}),"\n",(0,i.jsx)(n.p,{children:"Using Google Drive Picker requires setup in both Uppy and Companion."}),"\n",(0,i.jsx)(n.h3,{id:"initial-setup",children:"Initial setup"}),"\n",(0,i.jsxs)(n.p,{children:["To sign up for API keys, go to the\n",(0,i.jsx)(n.a,{href:"https://console.developers.google.com/",children:"Google Developer Console"}),"."]}),"\n",(0,i.jsx)(n.p,{children:"Create a project for your app if you don\u2019t have one yet."}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["On the project\u2019s dashboard, enable the\n",(0,i.jsx)(n.a,{href:"https://console.cloud.google.com/apis/library/picker.googleapis.com",children:"Google Picker API"}),"\n(for Google Drive)."]}),"\n",(0,i.jsxs)(n.li,{children:["Create an API key. Restrict your API key to the Google Picker API for safety.\nThis will be your ",(0,i.jsx)(n.code,{children:"apiKey"})," in Uppy."]}),"\n",(0,i.jsxs)(n.li,{children:["Create an OAuth 2.0 Client ID of type Web application with the correct\nAuthorized JavaScript origins. This will be your ",(0,i.jsx)(n.code,{children:"clientId"})," in Uppy."]}),"\n"]}),"\n",(0,i.jsx)(n.h3,{id:"use-in-uppy",children:"Use in Uppy"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-js",metastring:"{10-13} showLineNumbers",children:"import Uppy from '@uppy/core';\nimport Dashboard from '@uppy/dashboard';\nimport GoogleDrivePicker from '@uppy/google-drive-picker';\n\nimport '@uppy/core/dist/style.min.css';\nimport '@uppy/dashboard/dist/style.min.css';\n\nnew Uppy()\n\t.use(Dashboard, { inline: true, target: '#dashboard' })\n\t.use(GoogleDrivePicker, {\n\t\tcompanionUrl: 'https://your-companion.com',\n\t\tclientId: 'From Google Developer Console',\n\t\tapiKey: 'From Google Developer Console',\n\t\tappId: 'From Google Developer Console',\n\t});\n"})}),"\n",(0,i.jsx)(n.h3,{id:"use-with-transloadit",children:"Use with Transloadit"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-js",children:"import { COMPANION_URL, COMPANION_ALLOWED_HOSTS } from '@uppy/transloadit';\nimport GoogleDrivePicker from '@uppy/google-drive-picker';\n\nuppy.use(GoogleDrivePicker, {\n\tcompanionUrl: COMPANION_URL,\n\tcompanionAllowedHosts: COMPANION_ALLOWED_HOSTS,\n\tclientId: 'From Google Developer Console',\n\tapiKey: 'From Google Developer Console',\n\tappId: 'From Google Developer Console',\n});\n"})}),"\n",(0,i.jsx)(n.h3,{id:"use-in-companion",children:"Use in Companion"}),"\n",(0,i.jsxs)(n.p,{children:["Companion is used to download/upload the picked files. Companion supports this\nplugin out-of-the-box, however it must be enabled in Companion with the\n",(0,i.jsx)(n.code,{children:"enableGooglePickerEndpoint"})," / ",(0,i.jsx)(n.code,{children:"COMPANION_ENABLE_GOOGLE_PICKER_ENDPOINT"})," option.\nFor this plugin, all credentials are public (non-secret) and provided in the\nfrontend."]}),"\n",(0,i.jsx)(n.h2,{id:"api",children:"API"}),"\n",(0,i.jsx)(n.h3,{id:"options",children:"Options"}),"\n",(0,i.jsx)(c.Ay,{}),"\n",(0,i.jsx)(n.h4,{id:"clientid",children:(0,i.jsx)(n.code,{children:"clientId"})}),"\n",(0,i.jsxs)(n.p,{children:["The client ID from the ",(0,i.jsx)(n.a,{href:"#initial-setup",children:"Initial setup"})," (",(0,i.jsx)(n.code,{children:"string"}),")."]}),"\n",(0,i.jsx)(n.h4,{id:"apikey",children:(0,i.jsx)(n.code,{children:"apiKey"})}),"\n",(0,i.jsxs)(n.p,{children:["The API key from the ",(0,i.jsx)(n.a,{href:"#initial-setup",children:"Initial setup"})," (",(0,i.jsx)(n.code,{children:"string"}),")."]}),"\n",(0,i.jsx)(n.h4,{id:"appid",children:(0,i.jsx)(n.code,{children:"appId"})}),"\n",(0,i.jsxs)(n.p,{children:["The App ID can be found in the\n",(0,i.jsx)(n.a,{href:"https://console.developers.google.com",children:"Google Developer Console"}),"\n",(0,i.jsx)(n.code,{children:"Project number"})," under ",(0,i.jsx)(n.code,{children:"IAM & Admin"})," > ",(0,i.jsx)(n.code,{children:"Settings"}),". Note that if this is set to\nan invalid value it will be ignored by Google when your project is in testing\nmode, but once in production you will get 404 errors when trying to download\nfiles."]})]})}function x(e={}){const{wrapper:n}={...(0,s.R)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(g,{...e})}):g(e)}},65171:(e,n,o)=>{o.d(n,{A:()=>t});var i=o(96540),s=o(21432),l=o(27293),r=o(4476),d=o(74848);const{rE:c}=r;function t(e){let{children:n,uppyCssName:o="uppy.min.css",uppyJsName:r="uppy.min.mjs"}=e,t=[];i.Children.toArray(n).forEach((e=>{t=[...t,...String(e).trim().split("\n").map((e=>e.trim()))]}));const a=t.map((e=>` ${e}`)).join("\n"),h=`https://releases.transloadit.com/uppy/v${c}/${r}`,p=`\x3c!-- 1. Add CSS to \`\` --\x3e\n\n\n\x3c!-- 2. Initialize --\x3e\n
\n\n - + diff --git a/blog/2016/08/0.8.0/index.html b/blog/2016/08/0.8.0/index.html index 0f9e1b514..c2cab3877 100644 --- a/blog/2016/08/0.8.0/index.html +++ b/blog/2016/08/0.8.0/index.html @@ -13,7 +13,7 @@ - + diff --git a/blog/2016/08/0.9.0/index.html b/blog/2016/08/0.9.0/index.html index b4a7a8355..f55dcf5fd 100644 --- a/blog/2016/08/0.9.0/index.html +++ b/blog/2016/08/0.9.0/index.html @@ -13,7 +13,7 @@ - + diff --git a/blog/2016/09/0.10/index.html b/blog/2016/09/0.10/index.html index 35c433569..d2b4ca183 100644 --- a/blog/2016/09/0.10/index.html +++ b/blog/2016/09/0.10/index.html @@ -13,7 +13,7 @@ - + diff --git a/blog/2016/11/0.11/index.html b/blog/2016/11/0.11/index.html index 0d9a528a7..ef92aaf05 100644 --- a/blog/2016/11/0.11/index.html +++ b/blog/2016/11/0.11/index.html @@ -13,7 +13,7 @@ - + diff --git a/blog/2016/12/0.12/index.html b/blog/2016/12/0.12/index.html index 26ebb03a6..97255aee0 100644 --- a/blog/2016/12/0.12/index.html +++ b/blog/2016/12/0.12/index.html @@ -13,7 +13,7 @@ - + diff --git a/blog/2017/02/0.14/index.html b/blog/2017/02/0.14/index.html index 91b4954fb..bce673478 100644 --- a/blog/2017/02/0.14/index.html +++ b/blog/2017/02/0.14/index.html @@ -13,7 +13,7 @@ - + diff --git a/blog/2017/03/0.15/index.html b/blog/2017/03/0.15/index.html index d7792c085..807a9c390 100644 --- a/blog/2017/03/0.15/index.html +++ b/blog/2017/03/0.15/index.html @@ -13,7 +13,7 @@ - + diff --git a/blog/2017/05/0.16/index.html b/blog/2017/05/0.16/index.html index 86ee0a075..bb0a38d7e 100644 --- a/blog/2017/05/0.16/index.html +++ b/blog/2017/05/0.16/index.html @@ -13,7 +13,7 @@ - + diff --git a/blog/2017/05/0.17/index.html b/blog/2017/05/0.17/index.html index c678db7c5..41bccf43c 100644 --- a/blog/2017/05/0.17/index.html +++ b/blog/2017/05/0.17/index.html @@ -13,7 +13,7 @@ - + diff --git a/blog/2017/07/golden-retriever/index.html b/blog/2017/07/golden-retriever/index.html index c33881f10..8c5ef49d9 100644 --- a/blog/2017/07/golden-retriever/index.html +++ b/blog/2017/07/golden-retriever/index.html @@ -13,7 +13,7 @@ - + diff --git a/blog/2017/08/0.18/index.html b/blog/2017/08/0.18/index.html index 419db4e23..bc7f44271 100644 --- a/blog/2017/08/0.18/index.html +++ b/blog/2017/08/0.18/index.html @@ -13,7 +13,7 @@ - + diff --git a/blog/2017/09/0.19/index.html b/blog/2017/09/0.19/index.html index 138bf675f..7520fdefc 100644 --- a/blog/2017/09/0.19/index.html +++ b/blog/2017/09/0.19/index.html @@ -13,7 +13,7 @@ - + diff --git a/blog/2017/10/0.20/index.html b/blog/2017/10/0.20/index.html index 1d3953e4f..877035d46 100644 --- a/blog/2017/10/0.20/index.html +++ b/blog/2017/10/0.20/index.html @@ -13,7 +13,7 @@ - + diff --git a/blog/2017/10/0.21/index.html b/blog/2017/10/0.21/index.html index 7fb23b353..d67f0fdd6 100644 --- a/blog/2017/10/0.21/index.html +++ b/blog/2017/10/0.21/index.html @@ -13,7 +13,7 @@ - + diff --git a/blog/2017/12/0.22/index.html b/blog/2017/12/0.22/index.html index c5bd3c5b9..a78e4b7f0 100644 --- a/blog/2017/12/0.22/index.html +++ b/blog/2017/12/0.22/index.html @@ -13,7 +13,7 @@ - + diff --git a/blog/2018/02/0.23/index.html b/blog/2018/02/0.23/index.html index 0cd4cb305..43d632fd0 100644 --- a/blog/2018/02/0.23/index.html +++ b/blog/2018/02/0.23/index.html @@ -13,7 +13,7 @@ - + diff --git a/blog/2018/04/0.24/index.html b/blog/2018/04/0.24/index.html index b174d71f6..9766a01e6 100644 --- a/blog/2018/04/0.24/index.html +++ b/blog/2018/04/0.24/index.html @@ -13,7 +13,7 @@ - + diff --git a/blog/2018/06/0.25/index.html b/blog/2018/06/0.25/index.html index 782c958c7..8e6f66e77 100644 --- a/blog/2018/06/0.25/index.html +++ b/blog/2018/06/0.25/index.html @@ -13,7 +13,7 @@ - + diff --git a/blog/2018/07/0.26/index.html b/blog/2018/07/0.26/index.html index 33b13139a..33dcc3e86 100644 --- a/blog/2018/07/0.26/index.html +++ b/blog/2018/07/0.26/index.html @@ -13,7 +13,7 @@ - + diff --git a/blog/2018/08/0.27/index.html b/blog/2018/08/0.27/index.html index 60fcd34e3..2a6f30db9 100644 --- a/blog/2018/08/0.27/index.html +++ b/blog/2018/08/0.27/index.html @@ -13,7 +13,7 @@ - + diff --git a/blog/2018/10/0.28/index.html b/blog/2018/10/0.28/index.html index d64eb6eac..5a12f1d76 100644 --- a/blog/2018/10/0.28/index.html +++ b/blog/2018/10/0.28/index.html @@ -13,7 +13,7 @@ - + diff --git a/blog/2018/12/0.29/index.html b/blog/2018/12/0.29/index.html index 293fe7bde..e519e3337 100644 --- a/blog/2018/12/0.29/index.html +++ b/blog/2018/12/0.29/index.html @@ -13,7 +13,7 @@ - + diff --git a/blog/2019/03/0.30/index.html b/blog/2019/03/0.30/index.html index 4a44e13fd..321b91c19 100644 --- a/blog/2019/03/0.30/index.html +++ b/blog/2019/03/0.30/index.html @@ -13,7 +13,7 @@ - + diff --git a/blog/2019/03/liftoff-01/index.html b/blog/2019/03/liftoff-01/index.html index 91307301f..e74b6a569 100644 --- a/blog/2019/03/liftoff-01/index.html +++ b/blog/2019/03/liftoff-01/index.html @@ -13,7 +13,7 @@ - + diff --git a/blog/2019/03/liftoff-02/index.html b/blog/2019/03/liftoff-02/index.html index c13418059..e156043be 100644 --- a/blog/2019/03/liftoff-02/index.html +++ b/blog/2019/03/liftoff-02/index.html @@ -13,7 +13,7 @@ - + diff --git a/blog/2019/03/liftoff-03/index.html b/blog/2019/03/liftoff-03/index.html index 3803a3320..07e311f43 100644 --- a/blog/2019/03/liftoff-03/index.html +++ b/blog/2019/03/liftoff-03/index.html @@ -13,7 +13,7 @@ - + diff --git a/blog/2019/03/liftoff-04/index.html b/blog/2019/03/liftoff-04/index.html index d278cb9c4..a3ac7ce56 100644 --- a/blog/2019/03/liftoff-04/index.html +++ b/blog/2019/03/liftoff-04/index.html @@ -13,7 +13,7 @@ - + diff --git a/blog/2019/03/liftoff-05/index.html b/blog/2019/03/liftoff-05/index.html index 9b9a288c3..ce8e52966 100644 --- a/blog/2019/03/liftoff-05/index.html +++ b/blog/2019/03/liftoff-05/index.html @@ -13,7 +13,7 @@ - + diff --git a/blog/2019/03/liftoff-06/index.html b/blog/2019/03/liftoff-06/index.html index 814c04b3d..0a1bb5ab7 100644 --- a/blog/2019/03/liftoff-06/index.html +++ b/blog/2019/03/liftoff-06/index.html @@ -13,7 +13,7 @@ - + diff --git a/blog/2019/04/1.0/index.html b/blog/2019/04/1.0/index.html index de31dbdc6..a42181dbc 100644 --- a/blog/2019/04/1.0/index.html +++ b/blog/2019/04/1.0/index.html @@ -13,7 +13,7 @@ - + diff --git a/blog/2019/04/liftoff-07/index.html b/blog/2019/04/liftoff-07/index.html index b29a62300..45712a48a 100644 --- a/blog/2019/04/liftoff-07/index.html +++ b/blog/2019/04/liftoff-07/index.html @@ -13,7 +13,7 @@ - + diff --git a/blog/2019/04/liftoff-08/index.html b/blog/2019/04/liftoff-08/index.html index accd6f9f3..498fe19a2 100644 --- a/blog/2019/04/liftoff-08/index.html +++ b/blog/2019/04/liftoff-08/index.html @@ -13,7 +13,7 @@ - + diff --git a/blog/2019/04/liftoff-09/index.html b/blog/2019/04/liftoff-09/index.html index 9dbb414cf..d2c49066d 100644 --- a/blog/2019/04/liftoff-09/index.html +++ b/blog/2019/04/liftoff-09/index.html @@ -13,7 +13,7 @@ - + diff --git a/blog/2019/04/liftoff-10/index.html b/blog/2019/04/liftoff-10/index.html index 1bee8b5cb..f5ac04f42 100644 --- a/blog/2019/04/liftoff-10/index.html +++ b/blog/2019/04/liftoff-10/index.html @@ -13,7 +13,7 @@ - + diff --git a/blog/2019/04/liftoff-11/index.html b/blog/2019/04/liftoff-11/index.html index 0954c04c6..8b6fff1f4 100644 --- a/blog/2019/04/liftoff-11/index.html +++ b/blog/2019/04/liftoff-11/index.html @@ -13,7 +13,7 @@ - + diff --git a/blog/2019/04/liftoff-12/index.html b/blog/2019/04/liftoff-12/index.html index 41d187043..8c99cbe7b 100644 --- a/blog/2019/04/liftoff-12/index.html +++ b/blog/2019/04/liftoff-12/index.html @@ -13,7 +13,7 @@ - + diff --git a/blog/2019/04/liftoff-13/index.html b/blog/2019/04/liftoff-13/index.html index 9d11bab95..0af351365 100644 --- a/blog/2019/04/liftoff-13/index.html +++ b/blog/2019/04/liftoff-13/index.html @@ -13,7 +13,7 @@ - + diff --git a/blog/2019/04/liftoff-14/index.html b/blog/2019/04/liftoff-14/index.html index 44ac79252..485a47b6f 100644 --- a/blog/2019/04/liftoff-14/index.html +++ b/blog/2019/04/liftoff-14/index.html @@ -13,7 +13,7 @@ - + diff --git a/blog/2019/04/liftoff-15/index.html b/blog/2019/04/liftoff-15/index.html index 1b21d6b05..68c293c34 100644 --- a/blog/2019/04/liftoff-15/index.html +++ b/blog/2019/04/liftoff-15/index.html @@ -13,7 +13,7 @@ - + diff --git a/blog/2019/04/liftoff-16/index.html b/blog/2019/04/liftoff-16/index.html index 42ea0152a..25b0b8066 100644 --- a/blog/2019/04/liftoff-16/index.html +++ b/blog/2019/04/liftoff-16/index.html @@ -13,7 +13,7 @@ - + diff --git a/blog/2019/04/liftoff-17/index.html b/blog/2019/04/liftoff-17/index.html index a26196f7d..5085a7b53 100644 --- a/blog/2019/04/liftoff-17/index.html +++ b/blog/2019/04/liftoff-17/index.html @@ -13,7 +13,7 @@ - + diff --git a/blog/2019/04/liftoff-18/index.html b/blog/2019/04/liftoff-18/index.html index 10d13bce0..a018ce2e4 100644 --- a/blog/2019/04/liftoff-18/index.html +++ b/blog/2019/04/liftoff-18/index.html @@ -13,7 +13,7 @@ - + diff --git a/blog/2019/04/liftoff-19/index.html b/blog/2019/04/liftoff-19/index.html index a18c67971..38441ac63 100644 --- a/blog/2019/04/liftoff-19/index.html +++ b/blog/2019/04/liftoff-19/index.html @@ -13,7 +13,7 @@ - + diff --git a/blog/2019/04/liftoff-20/index.html b/blog/2019/04/liftoff-20/index.html index ecffa250a..c2e714705 100644 --- a/blog/2019/04/liftoff-20/index.html +++ b/blog/2019/04/liftoff-20/index.html @@ -13,7 +13,7 @@ - + diff --git a/blog/2019/04/liftoff-21/index.html b/blog/2019/04/liftoff-21/index.html index 06e57ba1b..b053dc986 100644 --- a/blog/2019/04/liftoff-21/index.html +++ b/blog/2019/04/liftoff-21/index.html @@ -13,7 +13,7 @@ - + diff --git a/blog/2019/04/liftoff-22/index.html b/blog/2019/04/liftoff-22/index.html index bb5cd7a6b..694de2b0c 100644 --- a/blog/2019/04/liftoff-22/index.html +++ b/blog/2019/04/liftoff-22/index.html @@ -13,7 +13,7 @@ - + diff --git a/blog/2019/04/liftoff-23/index.html b/blog/2019/04/liftoff-23/index.html index f0238d2bd..242b7c046 100644 --- a/blog/2019/04/liftoff-23/index.html +++ b/blog/2019/04/liftoff-23/index.html @@ -13,7 +13,7 @@ - + diff --git a/blog/2019/04/liftoff-24/index.html b/blog/2019/04/liftoff-24/index.html index 46a9c8cd9..102127c15 100644 --- a/blog/2019/04/liftoff-24/index.html +++ b/blog/2019/04/liftoff-24/index.html @@ -13,7 +13,7 @@ - + diff --git a/blog/2019/04/liftoff-25/index.html b/blog/2019/04/liftoff-25/index.html index f9ef35d3f..a0ef242d6 100644 --- a/blog/2019/04/liftoff-25/index.html +++ b/blog/2019/04/liftoff-25/index.html @@ -13,7 +13,7 @@ - + diff --git a/blog/2019/04/liftoff-26/index.html b/blog/2019/04/liftoff-26/index.html index 7447f8a0c..6280383f9 100644 --- a/blog/2019/04/liftoff-26/index.html +++ b/blog/2019/04/liftoff-26/index.html @@ -13,7 +13,7 @@ - + diff --git a/blog/2019/04/liftoff-27/index.html b/blog/2019/04/liftoff-27/index.html index a187b0aa3..ea6d897d5 100644 --- a/blog/2019/04/liftoff-27/index.html +++ b/blog/2019/04/liftoff-27/index.html @@ -13,7 +13,7 @@ - + diff --git a/blog/2019/04/liftoff-28/index.html b/blog/2019/04/liftoff-28/index.html index 6f341df4c..06396214a 100644 --- a/blog/2019/04/liftoff-28/index.html +++ b/blog/2019/04/liftoff-28/index.html @@ -13,7 +13,7 @@ - + diff --git a/blog/2019/04/liftoff-29/index.html b/blog/2019/04/liftoff-29/index.html index 9a953ede8..6d37b5862 100644 --- a/blog/2019/04/liftoff-29/index.html +++ b/blog/2019/04/liftoff-29/index.html @@ -13,7 +13,7 @@ - + diff --git a/blog/2019/04/liftoff-30/index.html b/blog/2019/04/liftoff-30/index.html index e28817a32..0d6da6fc4 100644 --- a/blog/2019/04/liftoff-30/index.html +++ b/blog/2019/04/liftoff-30/index.html @@ -13,7 +13,7 @@ - + diff --git a/blog/2019/08/1.3/index.html b/blog/2019/08/1.3/index.html index 53f1ddd0d..155c51f95 100644 --- a/blog/2019/08/1.3/index.html +++ b/blog/2019/08/1.3/index.html @@ -13,7 +13,7 @@ - + diff --git a/blog/2019/10/1.5/index.html b/blog/2019/10/1.5/index.html index 2eb0e648a..a1b588ab9 100644 --- a/blog/2019/10/1.5/index.html +++ b/blog/2019/10/1.5/index.html @@ -13,7 +13,7 @@ - + diff --git a/blog/2019/11/1.6/index.html b/blog/2019/11/1.6/index.html index 44be55578..12ff4c00f 100644 --- a/blog/2019/11/1.6/index.html +++ b/blog/2019/11/1.6/index.html @@ -13,7 +13,7 @@ - + diff --git a/blog/2019/12/1.7/index.html b/blog/2019/12/1.7/index.html index 96c363455..722b1bb48 100644 --- a/blog/2019/12/1.7/index.html +++ b/blog/2019/12/1.7/index.html @@ -13,7 +13,7 @@ - + diff --git a/blog/2020/03/1.9/index.html b/blog/2020/03/1.9/index.html index 544a148db..c35e7eb0f 100644 --- a/blog/2020/03/1.9/index.html +++ b/blog/2020/03/1.9/index.html @@ -13,7 +13,7 @@ - + diff --git a/blog/2020/03/custom-providers/index.html b/blog/2020/03/custom-providers/index.html index 06a13bea4..008c7bf7c 100644 --- a/blog/2020/03/custom-providers/index.html +++ b/blog/2020/03/custom-providers/index.html @@ -13,7 +13,7 @@ - + diff --git a/blog/2020/04/1.10/index.html b/blog/2020/04/1.10/index.html index 9ddafa6f5..1b6030d2d 100644 --- a/blog/2020/04/1.10/index.html +++ b/blog/2020/04/1.10/index.html @@ -13,7 +13,7 @@ - + diff --git a/blog/2020/04/1.13/index.html b/blog/2020/04/1.13/index.html index 922390593..6e780bf99 100644 --- a/blog/2020/04/1.13/index.html +++ b/blog/2020/04/1.13/index.html @@ -13,7 +13,7 @@ - + diff --git a/blog/2020/07/1.18-image-editor/index.html b/blog/2020/07/1.18-image-editor/index.html index cbe251024..9b0a95ce6 100644 --- a/blog/2020/07/1.18-image-editor/index.html +++ b/blog/2020/07/1.18-image-editor/index.html @@ -13,7 +13,7 @@ - + diff --git a/blog/2020/09/companion-2.0/index.html b/blog/2020/09/companion-2.0/index.html index e113b1f4d..852904716 100644 --- a/blog/2020/09/companion-2.0/index.html +++ b/blog/2020/09/companion-2.0/index.html @@ -13,7 +13,7 @@ - + diff --git a/blog/2020/10/1.22/index.html b/blog/2020/10/1.22/index.html index f54289153..112c0e5ea 100644 --- a/blog/2020/10/1.22/index.html +++ b/blog/2020/10/1.22/index.html @@ -13,7 +13,7 @@ - + diff --git a/blog/2020/11/1.23/index.html b/blog/2020/11/1.23/index.html index 7d7b5081f..52549cb46 100644 --- a/blog/2020/11/1.23/index.html +++ b/blog/2020/11/1.23/index.html @@ -13,7 +13,7 @@ - + diff --git a/blog/2020/12/1.24/index.html b/blog/2020/12/1.24/index.html index 4843f6f2e..77fcefa6e 100644 --- a/blog/2020/12/1.24/index.html +++ b/blog/2020/12/1.24/index.html @@ -13,7 +13,7 @@ - + diff --git a/blog/2021/01/1.25/index.html b/blog/2021/01/1.25/index.html index 6cb76c220..3a0b31c60 100644 --- a/blog/2021/01/1.25/index.html +++ b/blog/2021/01/1.25/index.html @@ -13,7 +13,7 @@ - + diff --git a/blog/2021/02/1.26/index.html b/blog/2021/02/1.26/index.html index d921975ae..c300b24dd 100644 --- a/blog/2021/02/1.26/index.html +++ b/blog/2021/02/1.26/index.html @@ -13,7 +13,7 @@ - + diff --git a/blog/2021/04/1.27/index.html b/blog/2021/04/1.27/index.html index 7930ffb29..4a3daffe2 100644 --- a/blog/2021/04/1.27/index.html +++ b/blog/2021/04/1.27/index.html @@ -13,7 +13,7 @@ - + diff --git a/blog/2021/05/1.29/index.html b/blog/2021/05/1.29/index.html index 93e48c9d0..c2a2a6655 100644 --- a/blog/2021/05/1.29/index.html +++ b/blog/2021/05/1.29/index.html @@ -13,7 +13,7 @@ - + diff --git a/blog/2021/07/1.30/index.html b/blog/2021/07/1.30/index.html index 4c6a68129..1f82f046b 100644 --- a/blog/2021/07/1.30/index.html +++ b/blog/2021/07/1.30/index.html @@ -13,7 +13,7 @@ - + diff --git a/blog/2021/08/2.0/index.html b/blog/2021/08/2.0/index.html index 35c572013..f18d6b5ee 100644 --- a/blog/2021/08/2.0/index.html +++ b/blog/2021/08/2.0/index.html @@ -13,7 +13,7 @@ - + diff --git a/blog/2021/12/2.1-2.3/index.html b/blog/2021/12/2.1-2.3/index.html index 4851662c9..d587cd16e 100644 --- a/blog/2021/12/2.1-2.3/index.html +++ b/blog/2021/12/2.1-2.3/index.html @@ -13,7 +13,7 @@ - + diff --git a/blog/2022/03/2.4-2.7/index.html b/blog/2022/03/2.4-2.7/index.html index 16ea4f6fb..ab796d0dc 100644 --- a/blog/2022/03/2.4-2.7/index.html +++ b/blog/2022/03/2.4-2.7/index.html @@ -13,7 +13,7 @@ - + diff --git a/blog/2022/09/3.0/index.html b/blog/2022/09/3.0/index.html index 7a21220ea..3b21ac601 100644 --- a/blog/2022/09/3.0/index.html +++ b/blog/2022/09/3.0/index.html @@ -13,7 +13,7 @@ - + diff --git a/blog/2022/12/3.3/index.html b/blog/2022/12/3.3/index.html index ce7cf5883..27fb791be 100644 --- a/blog/2022/12/3.3/index.html +++ b/blog/2022/12/3.3/index.html @@ -13,7 +13,7 @@ - + diff --git a/blog/2023-05-new-website/index.html b/blog/2023-05-new-website/index.html index 1f5e073de..664ddba42 100644 --- a/blog/2023-05-new-website/index.html +++ b/blog/2023-05-new-website/index.html @@ -13,7 +13,7 @@ - + diff --git a/blog/2023-10-25-image-editor/index.html b/blog/2023-10-25-image-editor/index.html index 78a2b09f6..556232e9b 100644 --- a/blog/2023-10-25-image-editor/index.html +++ b/blog/2023-10-25-image-editor/index.html @@ -13,7 +13,7 @@ - + diff --git a/blog/2023/07/3.13-3.21/index.html b/blog/2023/07/3.13-3.21/index.html index b82a18685..69a893db4 100644 --- a/blog/2023/07/3.13-3.21/index.html +++ b/blog/2023/07/3.13-3.21/index.html @@ -13,7 +13,7 @@ - + diff --git a/blog/2023/07/3.3-3.13/index.html b/blog/2023/07/3.3-3.13/index.html index 88abbe0e0..2bc1b15e9 100644 --- a/blog/2023/07/3.3-3.13/index.html +++ b/blog/2023/07/3.3-3.13/index.html @@ -13,7 +13,7 @@ - + diff --git a/blog/archive/index.html b/blog/archive/index.html index dcfd91fd5..8197a8ba4 100644 --- a/blog/archive/index.html +++ b/blog/archive/index.html @@ -13,7 +13,7 @@ - + diff --git a/blog/index.html b/blog/index.html index 0d9ed0062..68e6edb6a 100644 --- a/blog/index.html +++ b/blog/index.html @@ -13,7 +13,7 @@ - + diff --git a/blog/page/2/index.html b/blog/page/2/index.html index 89970654f..63a732bfa 100644 --- a/blog/page/2/index.html +++ b/blog/page/2/index.html @@ -13,7 +13,7 @@ - + diff --git a/blog/page/3/index.html b/blog/page/3/index.html index 189bc90bf..6d71a882c 100644 --- a/blog/page/3/index.html +++ b/blog/page/3/index.html @@ -13,7 +13,7 @@ - + diff --git a/blog/page/4/index.html b/blog/page/4/index.html index 6249e38e4..6ee828e59 100644 --- a/blog/page/4/index.html +++ b/blog/page/4/index.html @@ -13,7 +13,7 @@ - + diff --git a/blog/page/5/index.html b/blog/page/5/index.html index 0ef90daf7..7ac3285b2 100644 --- a/blog/page/5/index.html +++ b/blog/page/5/index.html @@ -13,7 +13,7 @@ - + diff --git a/blog/page/6/index.html b/blog/page/6/index.html index b7599e791..40340f035 100644 --- a/blog/page/6/index.html +++ b/blog/page/6/index.html @@ -13,7 +13,7 @@ - + diff --git a/blog/page/7/index.html b/blog/page/7/index.html index b85ce3015..b512ce20b 100644 --- a/blog/page/7/index.html +++ b/blog/page/7/index.html @@ -13,7 +13,7 @@ - + diff --git a/blog/page/8/index.html b/blog/page/8/index.html index 20c35cf90..f86a9dca4 100644 --- a/blog/page/8/index.html +++ b/blog/page/8/index.html @@ -13,7 +13,7 @@ - + diff --git a/blog/page/9/index.html b/blog/page/9/index.html index 3041c25da..7a771b736 100644 --- a/blog/page/9/index.html +++ b/blog/page/9/index.html @@ -13,7 +13,7 @@ - + diff --git a/blog/uppy-4.0/index.html b/blog/uppy-4.0/index.html index 19a21e4b5..a829e1d5e 100644 --- a/blog/uppy-4.0/index.html +++ b/blog/uppy-4.0/index.html @@ -13,7 +13,7 @@ - + diff --git a/docs/angular/index.html b/docs/angular/index.html index e06295b73..5736cf8bc 100644 --- a/docs/angular/index.html +++ b/docs/angular/index.html @@ -13,7 +13,7 @@ - + diff --git a/docs/audio/index.html b/docs/audio/index.html index aa0f118bd..88c7a8ac5 100644 --- a/docs/audio/index.html +++ b/docs/audio/index.html @@ -13,7 +13,7 @@ - + diff --git a/docs/aws-s3/index.html b/docs/aws-s3/index.html index febca7ffb..75c6f6433 100644 --- a/docs/aws-s3/index.html +++ b/docs/aws-s3/index.html @@ -13,7 +13,7 @@ - + diff --git a/docs/box/index.html b/docs/box/index.html index ded5fa128..8b40f2044 100644 --- a/docs/box/index.html +++ b/docs/box/index.html @@ -13,7 +13,7 @@ - + diff --git a/docs/companion/index.html b/docs/companion/index.html index d750d6c6a..56711caa7 100644 --- a/docs/companion/index.html +++ b/docs/companion/index.html @@ -13,7 +13,7 @@ - + diff --git a/docs/compressor/index.html b/docs/compressor/index.html index 1eabc516e..6019e0247 100644 --- a/docs/compressor/index.html +++ b/docs/compressor/index.html @@ -13,7 +13,7 @@ - + diff --git a/docs/dashboard/index.html b/docs/dashboard/index.html index f02b8b2f8..a18ae8a06 100644 --- a/docs/dashboard/index.html +++ b/docs/dashboard/index.html @@ -13,7 +13,7 @@ - + diff --git a/docs/drag-drop/index.html b/docs/drag-drop/index.html index 4f8bbaf97..ce7278176 100644 --- a/docs/drag-drop/index.html +++ b/docs/drag-drop/index.html @@ -13,7 +13,7 @@ - + diff --git a/docs/drop-target/index.html b/docs/drop-target/index.html index b2c11ddeb..a51292a35 100644 --- a/docs/drop-target/index.html +++ b/docs/drop-target/index.html @@ -13,7 +13,7 @@ - + diff --git a/docs/dropbox/index.html b/docs/dropbox/index.html index e2f34cae4..cab232b4b 100644 --- a/docs/dropbox/index.html +++ b/docs/dropbox/index.html @@ -13,7 +13,7 @@ - + diff --git a/docs/facebook/index.html b/docs/facebook/index.html index 6fecebf23..32084f621 100644 --- a/docs/facebook/index.html +++ b/docs/facebook/index.html @@ -13,7 +13,7 @@ - + diff --git a/docs/file-input/index.html b/docs/file-input/index.html index 1e6978807..64bb742e5 100644 --- a/docs/file-input/index.html +++ b/docs/file-input/index.html @@ -13,7 +13,7 @@ - + diff --git a/docs/form/index.html b/docs/form/index.html index b0682ea7e..cfab2e753 100644 --- a/docs/form/index.html +++ b/docs/form/index.html @@ -13,7 +13,7 @@ - + diff --git a/docs/golden-retriever/index.html b/docs/golden-retriever/index.html index 7bbc8cf7f..948327b6d 100644 --- a/docs/golden-retriever/index.html +++ b/docs/golden-retriever/index.html @@ -13,7 +13,7 @@ - + diff --git a/docs/google-drive-picker/index.html b/docs/google-drive-picker/index.html index f3e16dada..1043ca06d 100644 --- a/docs/google-drive-picker/index.html +++ b/docs/google-drive-picker/index.html @@ -13,7 +13,7 @@ - + @@ -48,10 +48,28 @@

Initial setup<
  • On the project’s dashboard, enable the Google Picker API (for Google Drive).
  • -
  • Create an API key. Restrict your API key to the Google Picker API for safety. -This will be your apiKey in Uppy.
  • -
  • Create an OAuth 2.0 Client ID of type Web application with the correct -Authorized JavaScript origins. This will be your clientId in Uppy.
  • +
  • Create an API key: +
      +
    • Application restrictions: Websites
    • +
    • Website restrictions: Add the base URL of the domain name you’re hosting the +frontend web app on, example: https://example.com. Note that if you’re +testing locally you need to add http://localhost:LOCAL_PORT or similar
    • +
    • API restrictions: Restrict key: Tick Google Picker API
    • +
    • Click Show key and use it as the apiKey argument to Uppy.
    • +
    +
  • +
  • Create an OAuth 2.0 Client ID of type Web application: +
      +
    • Authorized JavaScript origins: Add the base URL of the domain name you’re +hosting the frontend web app on, example: https://example.com. Note +that if you’re testing locally you need to add http://localhost:LOCAL_PORT +or similar. This will be your clientId in Uppy.
    • +
    +
  • +
  • For how to find appId, see options below.
  • +
  • Some users reported that the +Google Drive API +must be enabled as well, so if you’re having problems, please try that.
  • Use in Uppy

    import Uppy from '@uppy/core';
    import Dashboard from '@uppy/dashboard';
    import GoogleDrivePicker from '@uppy/google-drive-picker';

    import '@uppy/core/dist/style.min.css';
    import '@uppy/dashboard/dist/style.min.css';

    new Uppy()
    .use(Dashboard, { inline: true, target: '#dashboard' })
    .use(GoogleDrivePicker, {
    companionUrl: 'https://your-companion.com',
    clientId: 'From Google Developer Console',
    apiKey: 'From Google Developer Console',
    appId: 'From Google Developer Console',
    });
    @@ -122,10 +140,12 @@

    apiKeyThe API key from the Initial setup (string).

    appId

    The App ID can be found in the -Google Developer Console -Project number under IAM & Admin > Settings. Note that if this is set to -an invalid value it will be ignored by Google when your project is in testing -mode, but once in production you will get 404 errors when trying to download -files.

    +Google Developer Console: Project +number under +IAM & Admin > Settings.

    +
    note

    Make sure you use the project number (not project ID or project name), +and make sure you’re in the correct project. Note that if this is set to the +wrong value it will be ignored by Google when your project is in testing mode, +but once in production users will get 404 errors when trying to download.

    \ No newline at end of file diff --git a/docs/google-drive/index.html b/docs/google-drive/index.html index 0532dc487..a3d1afc27 100644 --- a/docs/google-drive/index.html +++ b/docs/google-drive/index.html @@ -13,7 +13,7 @@ - + diff --git a/docs/google-photos-picker/index.html b/docs/google-photos-picker/index.html index 8c22c44fc..1974bd33b 100644 --- a/docs/google-photos-picker/index.html +++ b/docs/google-photos-picker/index.html @@ -13,7 +13,7 @@ - + diff --git a/docs/google-photos/index.html b/docs/google-photos/index.html index 54a03d684..1cb5628d2 100644 --- a/docs/google-photos/index.html +++ b/docs/google-photos/index.html @@ -13,7 +13,7 @@ - + diff --git a/docs/guides/browser-support/index.html b/docs/guides/browser-support/index.html index 3d849a52b..96d3574dc 100644 --- a/docs/guides/browser-support/index.html +++ b/docs/guides/browser-support/index.html @@ -13,7 +13,7 @@ - + diff --git a/docs/guides/building-plugins/index.html b/docs/guides/building-plugins/index.html index 9cf74797f..3799b35f5 100644 --- a/docs/guides/building-plugins/index.html +++ b/docs/guides/building-plugins/index.html @@ -13,7 +13,7 @@ - + diff --git a/docs/guides/building-your-own-ui-with-uppy/index.html b/docs/guides/building-your-own-ui-with-uppy/index.html index b6b91f01d..51bf45680 100644 --- a/docs/guides/building-your-own-ui-with-uppy/index.html +++ b/docs/guides/building-your-own-ui-with-uppy/index.html @@ -13,7 +13,7 @@ - + diff --git a/docs/guides/choosing-uploader/index.html b/docs/guides/choosing-uploader/index.html index c31da15d5..25d59ee41 100644 --- a/docs/guides/choosing-uploader/index.html +++ b/docs/guides/choosing-uploader/index.html @@ -13,7 +13,7 @@ - + diff --git a/docs/guides/custom-stores/index.html b/docs/guides/custom-stores/index.html index a6b54acfe..96a5f3a3a 100644 --- a/docs/guides/custom-stores/index.html +++ b/docs/guides/custom-stores/index.html @@ -13,7 +13,7 @@ - + diff --git a/docs/guides/migration-guides/index.html b/docs/guides/migration-guides/index.html index 3d965a190..5ec029a49 100644 --- a/docs/guides/migration-guides/index.html +++ b/docs/guides/migration-guides/index.html @@ -13,7 +13,7 @@ - + diff --git a/docs/image-editor/index.html b/docs/image-editor/index.html index 86ba654e0..f2e35fd79 100644 --- a/docs/image-editor/index.html +++ b/docs/image-editor/index.html @@ -13,7 +13,7 @@ - + diff --git a/docs/index.html b/docs/index.html index 6cdbd721b..91d6da30a 100644 --- a/docs/index.html +++ b/docs/index.html @@ -13,7 +13,7 @@ - + diff --git a/docs/informer/index.html b/docs/informer/index.html index 5478df6ef..e1a4bafa0 100644 --- a/docs/informer/index.html +++ b/docs/informer/index.html @@ -13,7 +13,7 @@ - + diff --git a/docs/instagram/index.html b/docs/instagram/index.html index bf0e11a84..b94e056c5 100644 --- a/docs/instagram/index.html +++ b/docs/instagram/index.html @@ -13,7 +13,7 @@ - + diff --git a/docs/locales/index.html b/docs/locales/index.html index cfd262798..f008208ce 100644 --- a/docs/locales/index.html +++ b/docs/locales/index.html @@ -13,7 +13,7 @@ - + diff --git a/docs/nextjs/index.html b/docs/nextjs/index.html index 1038ccff1..4c6cb04f9 100644 --- a/docs/nextjs/index.html +++ b/docs/nextjs/index.html @@ -13,7 +13,7 @@ - + diff --git a/docs/onedrive/index.html b/docs/onedrive/index.html index 43c1fdb42..2f1c98f40 100644 --- a/docs/onedrive/index.html +++ b/docs/onedrive/index.html @@ -13,7 +13,7 @@ - + diff --git a/docs/progress-bar/index.html b/docs/progress-bar/index.html index 4b72d1e8c..66ce9b8a6 100644 --- a/docs/progress-bar/index.html +++ b/docs/progress-bar/index.html @@ -13,7 +13,7 @@ - + diff --git a/docs/quick-start/index.html b/docs/quick-start/index.html index 8282da334..1bb18c77d 100644 --- a/docs/quick-start/index.html +++ b/docs/quick-start/index.html @@ -13,7 +13,7 @@ - + diff --git a/docs/react/index.html b/docs/react/index.html index 467b95aef..b3bfdfa28 100644 --- a/docs/react/index.html +++ b/docs/react/index.html @@ -13,7 +13,7 @@ - + diff --git a/docs/reactrouter/index.html b/docs/reactrouter/index.html index 2a43504b3..58e9b06ba 100644 --- a/docs/reactrouter/index.html +++ b/docs/reactrouter/index.html @@ -13,7 +13,7 @@ - + diff --git a/docs/remote-sources/index.html b/docs/remote-sources/index.html index e3023ded1..dc64654dd 100644 --- a/docs/remote-sources/index.html +++ b/docs/remote-sources/index.html @@ -13,7 +13,7 @@ - + diff --git a/docs/screen-capture/index.html b/docs/screen-capture/index.html index bff45af16..465b05808 100644 --- a/docs/screen-capture/index.html +++ b/docs/screen-capture/index.html @@ -13,7 +13,7 @@ - + diff --git a/docs/status-bar/index.html b/docs/status-bar/index.html index 5745f8976..b38614a68 100644 --- a/docs/status-bar/index.html +++ b/docs/status-bar/index.html @@ -13,7 +13,7 @@ - + diff --git a/docs/svelte/index.html b/docs/svelte/index.html index a7d173721..d4db3149f 100644 --- a/docs/svelte/index.html +++ b/docs/svelte/index.html @@ -13,7 +13,7 @@ - + diff --git a/docs/sveltekit/index.html b/docs/sveltekit/index.html index 629c0a6e2..efaad76ed 100644 --- a/docs/sveltekit/index.html +++ b/docs/sveltekit/index.html @@ -13,7 +13,7 @@ - + diff --git a/docs/thumbnail-generator/index.html b/docs/thumbnail-generator/index.html index 838fe0a9d..9ba5a6dcd 100644 --- a/docs/thumbnail-generator/index.html +++ b/docs/thumbnail-generator/index.html @@ -13,7 +13,7 @@ - + diff --git a/docs/transloadit/index.html b/docs/transloadit/index.html index db2a301e5..96e6c8e22 100644 --- a/docs/transloadit/index.html +++ b/docs/transloadit/index.html @@ -13,7 +13,7 @@ - + diff --git a/docs/tus/index.html b/docs/tus/index.html index ca005d08c..2f655a5f9 100644 --- a/docs/tus/index.html +++ b/docs/tus/index.html @@ -13,7 +13,7 @@ - + diff --git a/docs/unsplash/index.html b/docs/unsplash/index.html index cbb4c4d0a..8543b0555 100644 --- a/docs/unsplash/index.html +++ b/docs/unsplash/index.html @@ -13,7 +13,7 @@ - + diff --git a/docs/uppy/index.html b/docs/uppy/index.html index c1f5b72ee..b95ce55f7 100644 --- a/docs/uppy/index.html +++ b/docs/uppy/index.html @@ -13,7 +13,7 @@ - + diff --git a/docs/url/index.html b/docs/url/index.html index bc7a5df3d..f75f336e8 100644 --- a/docs/url/index.html +++ b/docs/url/index.html @@ -13,7 +13,7 @@ - + diff --git a/docs/vue/index.html b/docs/vue/index.html index 10cbcdf2d..882f141a0 100644 --- a/docs/vue/index.html +++ b/docs/vue/index.html @@ -13,7 +13,7 @@ - + diff --git a/docs/webcam/index.html b/docs/webcam/index.html index ce2725c1c..d196c9976 100644 --- a/docs/webcam/index.html +++ b/docs/webcam/index.html @@ -13,7 +13,7 @@ - + diff --git a/docs/webdav/index.html b/docs/webdav/index.html index d830c6f3a..1652f7966 100644 --- a/docs/webdav/index.html +++ b/docs/webdav/index.html @@ -13,7 +13,7 @@ - + diff --git a/docs/xhr-upload/index.html b/docs/xhr-upload/index.html index 424b2879b..ed98026a1 100644 --- a/docs/xhr-upload/index.html +++ b/docs/xhr-upload/index.html @@ -13,7 +13,7 @@ - + diff --git a/docs/zoom/index.html b/docs/zoom/index.html index 8a3b4b38d..ea4dd891f 100644 --- a/docs/zoom/index.html +++ b/docs/zoom/index.html @@ -13,7 +13,7 @@ - + diff --git a/examples/index.html b/examples/index.html index 743470fe5..6392b3a7b 100644 --- a/examples/index.html +++ b/examples/index.html @@ -13,7 +13,7 @@ - + diff --git a/index.html b/index.html index 585db5725..ac7b64c4c 100644 --- a/index.html +++ b/index.html @@ -13,7 +13,7 @@ - + diff --git a/privacy-policy/index.html b/privacy-policy/index.html index fee808fc8..a25c26d44 100644 --- a/privacy-policy/index.html +++ b/privacy-policy/index.html @@ -13,7 +13,7 @@ - + diff --git a/search/index.html b/search/index.html index 4ae6d88f6..96a23d89c 100644 --- a/search/index.html +++ b/search/index.html @@ -13,7 +13,7 @@ - +