{"id":357938,"date":"2026-09-16T07:41:48","date_gmt":"2026-09-16T07:41:48","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/kfx-media-importer-for-google-drive\/"},"modified":"2026-09-16T07:41:31","modified_gmt":"2026-09-16T07:41:31","slug":"kfx-media-importer-for-google-drive","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/kfx-media-importer-for-google-drive\/","author":16142374,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.1.2","stable_tag":"1.1.2","tested":"7.1.3","requires":"6.5","requires_php":"8.0","requires_plugins":null,"header_name":"KFX Media Importer for Google Drive","header_author":"Kodefix","header_description":"Import images from Google Drive into the WordPress Media Library via Google Picker.","assets_banners_color":"8eba82","last_updated":"2026-09-16 07:41:31","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":156,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.1.2":{"tag":"1.1.2","author":"gkubiszyn","date":"2026-09-16 07:41:31","revision":3698113}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3698113,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3698113,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3698113,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3698113,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.1.2"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[17785,48926,163,87,233],"plugin_category":[50,59],"plugin_contributors":[186417],"plugin_business_model":[],"class_list":["post-357938","plugin","type-plugin","status-publish","hentry","plugin_tags-google-drive","plugin_tags-google-picker","plugin_tags-images","plugin_tags-import","plugin_tags-media-library","plugin_category-media","plugin_category-utilities-and-tools","plugin_contributors-gkubiszyn","plugin_committers-gkubiszyn"],"banners":{"banner":"https:\/\/ps.w.org\/kfx-media-importer-for-google-drive\/assets\/banner-772x250.png?rev=3698113","banner_2x":"https:\/\/ps.w.org\/kfx-media-importer-for-google-drive\/assets\/banner-1544x500.png?rev=3698113","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/kfx-media-importer-for-google-drive\/assets\/icon-128x128.png?rev=3698113","icon_2x":"https:\/\/ps.w.org\/kfx-media-importer-for-google-drive\/assets\/icon-256x256.png?rev=3698113","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>This plugin lets authorized WordPress users import images from Google Drive directly into the standard Media Library. After import, files are normal local WordPress attachments.<\/p>\n\n<p><strong>Free (this plugin): bring-your-own (BYO) Google credentials<\/strong><\/p>\n\n<p>You create a Google Cloud project and paste (in <strong>Media \u2192 Google Drive Import<\/strong>, or via constants in <code>wp-config.php<\/code>):<\/p>\n\n<ul>\n<li>OAuth Client ID (Web application) \u2014 <code>KFX_GDRIVE_CLIENT_ID<\/code><\/li>\n<li>Google Picker API key \u2014 <code>KFX_GDRIVE_PICKER_API_KEY<\/code><\/li>\n<li>App ID (Google Cloud <strong>project number<\/strong>) \u2014 <code>KFX_GDRIVE_APP_ID<\/code><\/li>\n<\/ul>\n\n<p>Sign-in uses Google Identity Services in the browser. <strong>Do not<\/strong> put the OAuth client secret in WordPress. Kodefix does <strong>not<\/strong> host OAuth for the Free plugin. Credentials set in <code>wp-config.php<\/code> appear masked in the admin UI.<\/p>\n\n<p><strong>Pro (optional addon)<\/strong><\/p>\n\n<p>The main benefit of <a href=\"https:\/\/kodefix.com\/kodefix-store\/kfx-media-importer-for-google-drive-pro\/\">Pro<\/a> is simpler setup: with an active Kodefix Store license you connect Google Drive without creating a Google Cloud project. Enter the license key under <strong>Media \u2192 Google Drive Import<\/strong>, or define <code>KFX_GDRIVE_PRO_LICENSE_KEY<\/code> in <code>wp-config.php<\/code>. Pro also adds resize, filename normalization, ALT from filename, and content-hash duplicate detection.<\/p>\n\n<h3>External services<\/h3>\n\n<p>This plugin connects to third-party services to import images from Google Drive.<\/p>\n\n<p><strong>Google Identity Services, Google Picker, and Google Drive API<\/strong><\/p>\n\n<p>Used to sign in with Google, browse and select image files, and download those files into the WordPress Media Library. Scope: <code>https:\/\/www.googleapis.com\/auth\/drive.file<\/code> only (files you explicitly pick).<\/p>\n\n<p>When you import:<\/p>\n\n<ul>\n<li>In the browser, Google Identity Services and Google Picker receive your OAuth Client ID (Free) and the selected file metadata (ID, name, MIME type, size).<\/li>\n<li>Your WordPress server then requests file bytes from the Google Drive API (<code>www.googleapis.com<\/code>) using a short-lived Bearer access token and the selected file IDs. The token is not stored permanently.<\/li>\n<\/ul>\n\n<p>This service is provided by Google: <a href=\"https:\/\/policies.google.com\/privacy\">Privacy Policy<\/a> \u00b7 <a href=\"https:\/\/policies.google.com\/terms\">Terms of Service<\/a>.<\/p>\n\n<p><strong>Your Google Cloud project (Free)<\/strong><\/p>\n\n<p>You configure your own OAuth Client ID, Picker API key, and App ID under <strong>Media \u2192 Google Drive Import<\/strong> (or via <code>KFX_GDRIVE_*<\/code> constants). Kodefix does not receive Google tokens or file contents on the Free import path.<\/p>\n\n<p><strong>Kodefix hosted Google sign-in (Pro only, licensed)<\/strong><\/p>\n\n<p>With an active Kodefix Store license, the optional Pro addon can use Kodefix hosted Google sign-in so you do not need your own Google Cloud project. It temporarily processes session\/installation identifiers and the WordPress site origin to complete Connect. <strong>File contents are never sent through Kodefix servers<\/strong> \u2014 downloads still go from Google Drive to your WordPress site. The Free plugin does not call this service.<\/p>\n\n<p>Kodefix Store <a href=\"https:\/\/kodefix.com\/kodefix-store-terms\/\">Terms<\/a> \u00b7 <a href=\"https:\/\/kodefix.com\/privacy-policy-kfx-media-importer-for-google-drive\/\">Privacy Policy<\/a>.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin folder to <code>\/wp-content\/plugins\/kfx-media-importer-for-google-drive\/<\/code><\/li>\n<li>Activate through the <strong>Plugins<\/strong> menu<\/li>\n<li>Go to <strong>Media \u2192 Google Drive Import<\/strong> and enter your Google Cloud credentials, <em>or<\/em> define <code>KFX_GDRIVE_CLIENT_ID<\/code>, <code>KFX_GDRIVE_PICKER_API_KEY<\/code>, and <code>KFX_GDRIVE_APP_ID<\/code> in <code>wp-config.php<\/code><\/li>\n<li>Open <strong>Media \u2192 Library<\/strong> and use <strong>Import from Google Drive<\/strong> \/ the Google Drive tab<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20embed%20files%20from%20google%20drive%20on%20the%20frontend%3F\"><h3>Does this embed files from Google Drive on the frontend?<\/h3><\/dt>\n<dd><p>No. Files are downloaded into your WordPress Media Library as local attachments.<\/p><\/dd>\n<dt id=\"what%20google%20permissions%20are%20requested%3F\"><h3>What Google permissions are requested?<\/h3><\/dt>\n<dd><p>Only <code>https:\/\/www.googleapis.com\/auth\/drive.file<\/code> \u2014 access to files you select in Google Picker.<\/p><\/dd>\n<dt id=\"do%20i%20need%20a%20google%20cloud%20project%3F\"><h3>Do I need a Google Cloud project?<\/h3><\/dt>\n<dd><p>Yes for Free. Create a Web OAuth Client ID, enable Picker + Drive APIs, create an API key, and use the numeric project number as App ID. Add your WordPress site URL under Authorized JavaScript origins. You can paste credentials in the settings UI or set <code>KFX_GDRIVE_CLIENT_ID<\/code>, <code>KFX_GDRIVE_PICKER_API_KEY<\/code>, and <code>KFX_GDRIVE_APP_ID<\/code> in <code>wp-config.php<\/code>.<\/p><\/dd>\n<dt id=\"what%20about%20pro%20simpler%20setup%3F\"><h3>What about Pro simpler setup?<\/h3><\/dt>\n<dd><p>Install <a href=\"https:\/\/kodefix.com\/kodefix-store\/kfx-media-importer-for-google-drive-pro\/\">KFX Media Importer for Google Drive Pro<\/a>, enter your Kodefix Store license key under <strong>Media \u2192 Google Drive Import<\/strong> (or define <code>KFX_GDRIVE_PRO_LICENSE_KEY<\/code> in <code>wp-config.php<\/code>). You can connect Google Drive without creating a Google Cloud project. If the license expires, existing media stays; use Free BYO credentials to keep importing.<\/p><\/dd>\n<dt id=\"can%20i%20set%20credentials%20in%20wp-config.php%3F\"><h3>Can I set credentials in wp-config.php?<\/h3><\/dt>\n<dd><p>Yes. Free: <code>KFX_GDRIVE_CLIENT_ID<\/code>, <code>KFX_GDRIVE_PICKER_API_KEY<\/code>, <code>KFX_GDRIVE_APP_ID<\/code>. Pro license: <code>KFX_GDRIVE_PRO_LICENSE_KEY<\/code>. Values from <code>wp-config.php<\/code> override the database options and appear masked (read-only) in the admin UI.<\/p><\/dd>\n<dt id=\"are%20duplicates%20prevented%3F\"><h3>Are duplicates prevented?<\/h3><\/dt>\n<dd><p>Free skips re-import of the same Google Drive file ID. Pro can also detect identical image content (SHA-256).<\/p><\/dd>\n<dt id=\"compatible%20with%20tinypng%20%2F%20wp%20offload%20media%3F\"><h3>Compatible with TinyPNG \/ WP Offload Media?<\/h3><\/dt>\n<dd><p>Imports use WordPress <code>media_handle_sideload<\/code>, so plugins that hook attachment creation \/ metadata generally work. Tested conceptually with TinyPNG and WP Offload Media style pipelines; always smoke-test on a staging site.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.1.2<\/h4>\n\n<ul>\n<li>WordPress.org review: enqueue-only scripts, remove bundled translations, document external services with Terms and Privacy links, Contributors username, remove admin upsell notice outside plugin settings.<\/li>\n<\/ul>\n\n<h4>1.1.1<\/h4>\n\n<ul>\n<li>PHP 8.0 compatibility: removed typed static class properties (PHP 8.3+ syntax) so the plugin runs on PHP 8.0\u20138.2 as declared in Requires PHP.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Free uses BYO Google credentials in settings (GIS token client).<\/li>\n<li>Drive file ID duplicate detection in Free.<\/li>\n<li>Pro can override auth to licensed hosted Google sign-in.<\/li>\n<li>Credentials and Pro license key can be set via wp-config.php constants.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"Import images from Google Drive into the WordPress Media Library using Google Picker (bring-your-own Google credentials).","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/357938","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=357938"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/gkubiszyn"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=357938"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=357938"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=357938"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=357938"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=357938"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=357938"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}