Title: Auto-Publish to Google Business Profile (GMB Poster)
Author: Defyn
Published: <strong>2026년 5월 17일</strong>
Last modified: 2026년 10월 12일

---

플러그인 검색

![](https://ps.w.org/gbposter-for-google-business-profile/assets/banner-772x250.
png?rev=3557857)

![](https://ps.w.org/gbposter-for-google-business-profile/assets/icon.svg?rev=3534869)

# Auto-Publish to Google Business Profile (GMB Poster)

 작성자: [Defyn](https://profiles.wordpress.org/defyndigital/)

[다운로드](https://downloads.wordpress.org/plugin/gbposter-for-google-business-profile.2.0.3.zip)

 * [세부사항](https://ko.wordpress.org/plugins/gbposter-for-google-business-profile/#description)
 * [평가](https://ko.wordpress.org/plugins/gbposter-for-google-business-profile/#reviews)
 *  [설치](https://ko.wordpress.org/plugins/gbposter-for-google-business-profile/#installation)
 * [개발](https://ko.wordpress.org/plugins/gbposter-for-google-business-profile/#developers)

 [지원](https://wordpress.org/support/plugin/gbposter-for-google-business-profile/)

## 설명

GMB Poster turns your WordPress posts into a steady stream of Google Business Profile(
GBP) updates. New posts join a queue, the scheduler picks a slot from your cadence,
and at slot time GMB Poster either:

 * **Auto-publishes** the post directly to your GBP location via the official Google
   Business Profile API (v2.0+), or
 * Prepares the caption, image and tracked link and hands it off to you for a one-
   click publish in the GBP web interface (the original semi-manual mode).

You pick the mode in Settings. You can switch any time.

#### Auto-publish (recommended, v2.0+)

 1. Create a free Google Cloud project, enable the My Business APIs, paste your OAuth
    Client ID + Secret into GMB Poster Settings. (Step-by-step guide is built into 
    the setup wizard.)
 2. Click **Connect Google account** — Google’s consent screen opens, you pick the 
    Google account that manages your GBP, click Allow.
 3. Pick your GBP location from the dropdown.
 4. Flip the **Auto-publish** toggle on.

From then on, every time a queued post hits its scheduled slot, GMB Poster posts
it directly to your GBP location automatically. Posted items show a green “Posted”
pill and the Google post ID. Failed items show a red “Failed” pill with the Google
API error and a one-click **Retry publish** button.

Why “per-install” OAuth credentials? GMB Poster never embeds a shared Google client—
that would leak the same OAuth secret to every installation of the plugin on WP.
org and risk Google revoking it for everyone. Instead, each install uses its own
free Google Cloud project; the OAuth Client Secret and the refresh token are stored
encrypted-at-rest in your WordPress database using a key derived from your site’s`
AUTH_KEY` constant.

#### Semi-manual mode (original)

If you don’t want to set up a Google Cloud project, the original semi-manual handoff
still works:

 1. New WordPress posts are added to the GMB Poster queue automatically (configurable
    per post type and category).
 2. The scheduler picks a posting slot using either time-of-day slots or a cooldown
    window.
 3. When a slot is due, the next item appears in your Dashboard widget and on the GMB
    Poster Queue screen.
 4. Click **Prepare & open GBP**. GMB Poster:
 5.  * copies the formatted caption to your clipboard,
     * downloads the featured image to your computer,
     * opens your GBP composer in a new browser tab.
 6. In GBP: paste the caption, drop in the image, set the call-to-action, click Publish.
 7. Click **Mark posted** back in WordPress.

#### Features

 * **Auto-publish** to Google Business Profile via the official Google API (v2.0
   +), with a built-in setup wizard
 * Per-install OAuth 2.0 credentials — your secret + refresh token are encrypted
   at rest in your WordPress database
 * Semi-manual mode preserved as a fallback for installs that don’t want a Google
   Cloud project
 * Custom queue with statuses: Pending  Ready  Prepared  Posted (or Skipped / Failed)
 * Time-of-day slots OR cooldown-hours cadence, with optional weekend skipping
 * Auto-queue on publish, filterable by post type and category
 * Per-post opt-out checkbox in the editor sidebar
 * Dashboard widget showing the next item ready to send
 * “Publish now” / “Retry publish” buttons per row when auto-publish is on
 * UTM-tagged Learn-more links (utm_source / medium / campaign configurable)
 * Featured image  GBP image, title + excerpt  caption, permalink  call-to-action
 * Translation-ready

#### Disclaimer

This plugin is not affiliated with, endorsed by, or sponsored by Google LLC. “Google”
and “Google Business Profile” are trademarks of Google LLC.

### External services

GMB Poster communicates with the official Google Business Profile API when (and 
only when) you’ve connected a Google account and turned on Auto-publish:

 * **Google OAuth 2.0** (`https://accounts.google.com/o/oauth2/v2/auth`, `https://
   oauth2.googleapis.com/token`, `https://oauth2.googleapis.com/revoke`) — used 
   to obtain, refresh and revoke the access token GMB Poster uses on your behalf.
 * **My Business Account Management API** (`https://mybusinessaccountmanagement.
   googleapis.com/`) — to list the GBP accounts your Google login can manage.
 * **My Business Business Information API** (`https://mybusinessbusinessinformation.
   googleapis.com/`) — to list the locations under each account so you can pick 
   one.
 * **Google My Business API v4** (`https://mybusiness.googleapis.com/`) — to create
   local posts on the location you selected. This is the actual “publish” call.

When and what is sent:
 * The OAuth handshake sends nothing about your WordPress
posts — only your chosen Google account’s permission to act on its behalf. * For
each post we publish on your behalf, we send the caption text, the URL of your featured
image, the call-to-action button text + URL, and the post’s language code. We do
not send any visitor data, analytics, or anything else.

If you do not connect a Google account, GMB Poster never contacts Google. The semi-
manual mode opens GBP in your browser as a normal page navigation (your browser,
your session — exactly as if you had clicked a regular link).

Google’s terms of service: https://policies.google.com/terms
 Google’s privacy policy:
https://policies.google.com/privacy

## 스크린샷

[⌊The one-time setup wizard walks you through creating a Google Cloud project, enabling
the three Business Profile APIs, configuring the OAuth consent screen and creating
an OAuth client. About 20 minutes from a fresh Google account to publishing.⌉⌊The
one-time setup wizard walks you through creating a Google Cloud project, enabling
the three Business Profile APIs, configuring the OAuth consent screen and creating
an OAuth client. About 20 minutes from a fresh Google account to publishing.⌉[

The one-time setup wizard walks you through creating a Google Cloud project, enabling
the three Business Profile APIs, configuring the OAuth consent screen and creating
an OAuth client. About 20 minutes from a fresh Google account to publishing.

[⌊Once you're connected and a location is picked, flip the Auto-publish toggle on
and forget about it. Scheduled posts publish directly to your Google Business Profile
Updates feed.⌉⌊Once you're connected and a location is picked, flip the Auto-publish
toggle on and forget about it. Scheduled posts publish directly to your Google Business
Profile Updates feed.⌉[

Once you’re connected and a location is picked, flip the Auto-publish toggle on 
and forget about it. Scheduled posts publish directly to your Google Business Profile
Updates feed.

[⌊The queue with status pills — Posted (green) shows the Google post id, Ready (
blue) has a "Publish now" action for on-demand publishing, Failed (red) shows the
Google API error and offers a one-click Retry.⌉⌊The queue with status pills — Posted(
green) shows the Google post id, Ready (blue) has a "Publish now" action for on-
demand publishing, Failed (red) shows the Google API error and offers a one-click
Retry.⌉[

The queue with status pills — Posted (green) shows the Google post id, Ready (blue)
has a “Publish now” action for on-demand publishing, Failed (red) shows the Google
API error and offers a one-click Retry.

[⌊Prefer not to set up Google OAuth? The original semi-manual mode is still built
in — GMB Poster preps the caption, image and tracked link, then opens Google Business
Profile in your browser for a one-click publish.⌉⌊Prefer not to set up Google OAuth?
The original semi-manual mode is still built in — GMB Poster preps the caption, 
image and tracked link, then opens Google Business Profile in your browser for a
one-click publish.⌉[

Prefer not to set up Google OAuth? The original semi-manual mode is still built 
in — GMB Poster preps the caption, image and tracked link, then opens Google Business
Profile in your browser for a one-click publish.

## 설치

 1. Upload the `gbposter` folder to `/wp-content/plugins/` or install via Plugins  
    Add New  Upload.
 2. Activate **GMB Poster** through the Plugins screen.
 3. Go to **GMB Poster  Settings**.
 4. Choose your cadence (slot times or cooldown hours) and which post types or categories
    should auto-queue.
 5. _(Optional — for auto-publish)_ Open the **Google Business Profile** panel at the
    top of Settings and follow the 4-step wizard: create a free Google Cloud project,
    enable the My Business APIs, generate OAuth credentials, paste them in, click **
    Connect Google account**.
 6. Publish a WordPress post — it appears in **GMB Poster  Queue**. When its slot is
    due, GMB Poster either auto-publishes it (if connected) or surfaces it in your 
    Dashboard widget for the manual handoff.

## FAQ

### Does this plugin post to Google Business Profile automatically?

Yes, from v2.0.0 onward — if you connect your Google account through the built-in
OAuth wizard. The plugin uses the official Google Business Profile API to create
the post on your behalf. If you prefer not to set up OAuth, the original semi-manual
mode is still available: GMB Poster prepares the image, caption and tracked link,
opens GBP in your browser, and you publish with one click.

### Why do I need to set up my own Google Cloud project for auto-publish?

Google requires every application that calls the Business Profile API to use its
own OAuth client credentials. We don’t ship a shared client because that would mean
every install of this plugin would share the same OAuth secret — a security risk
and against Google’s terms. The setup is a one-time, ~10-minute process and the 
wizard walks you through it. There are no quotas, fees or recurring costs on Google’s
side for this volume.

### Does this plugin send any data to Google or to third parties?

Only when you’ve enabled auto-publish. In that mode, for each scheduled post the
plugin sends to Google: the caption text, the featured-image URL, the CTA text +
URL, and the post’s language. The OAuth handshake itself doesn’t send any post data—
only your consent to act on your account’s behalf. In semi-manual mode no data leaves
your server; opening GBP is a normal browser navigation. Full details in the “External
services” section above.

### Where are my Google credentials stored?

In your WordPress options table. The OAuth Client Secret and the refresh token are
encrypted at rest using AES-256-CBC with a key derived from your site’s `AUTH_KEY`
constant. They never appear in any log, REST response, or admin screen.

### What WordPress fields are used?

 * **Featured image**  the GBP post image
 * **Title + excerpt** (or first ~1400 characters of content if no excerpt)  the
   GBP caption
 * **Permalink**  the “Learn more” link, with optional UTM tags

### Can I skip a specific post?

Yes — the post editor sidebar includes a “Do not send this post to GBP” checkbox.

### What if I miss a slot?

Items that pass their scheduled time stay in the “Ready” status — they don’t expire.
You’ll see them next time you open WordPress.

### Does it support multisite networks?

The plugin activates per-site. Each site in the network has its own queue and settings.
Network-wide activation is not specifically tested in this release.

### Does it work with the block editor (Gutenberg)?

Yes. The settings meta box appears in the editor sidebar in both classic and block
editors.

## 후기

이 플러그인에 대한 평가가 없습니다.

## 기여자 & 개발자

“Auto-Publish to Google Business Profile (GMB Poster)”(은)는 오픈 소스 소프트웨어입니다.
다음의 사람들이 이 플러그인에 기여하였습니다.

기여자

 *   [ Defyn ](https://profiles.wordpress.org/defyndigital/)

[자국어로 “Auto-Publish to Google Business Profile (GMB Poster)”(을)를 번역하세요.](https://translate.wordpress.org/projects/wp-plugins/gbposter-for-google-business-profile)

### 개발에 관심이 있으십니까?

[코드 탐색하기](https://plugins.trac.wordpress.org/browser/gbposter-for-google-business-profile/)
는, [SVN 저장소](https://plugins.svn.wordpress.org/gbposter-for-google-business-profile/)
를 확인하시거나, [개발 기록](https://plugins.trac.wordpress.org/log/gbposter-for-google-business-profile/)
을 [RSS](https://plugins.trac.wordpress.org/log/gbposter-for-google-business-profile/?limit=100&mode=stop_on_copy&format=rss)
로 구독하세요.

## 변경이력

#### 2.0.3

 * Compatibility: tested with WordPress 7.1; bumped Tested up to: 7.1. No code changes.
   Plugin is already running on WordPress.com-hosted sites (which track the latest
   stable WordPress core) with the full OAuth + LocalPosts publish pipeline working
   against production Google Business Profile APIs.
 * Docs: rewrote SETUP.md to reflect the real Google approval process we learned
   from shipping this to a live site. Two things we had wrong: (1) you have to formally
   apply through “Application For Basic API Access” — the “Quota Increase Request”
   form routes to the wrong team and gets rejected; (2) the legacy Google My Business
   API is gated and has to be enabled manually at a direct URL AFTER your allowlist
   approval email arrives. Google’s own timeline is 7–10 business days; our test
   application was approved in 3.
 * Docs: added two troubleshooting entries covering the exact “Quota exceeded” and“
   has not been used in project” errors a new installer is most likely to hit.

#### 2.0.2

 * Rename: plugin display name updated from “GMB Poster” to “Auto-Publish to Google
   Business Profile (GMB Poster)” to improve discoverability for people searching
   the WordPress.org repository for “Google Business Profile”, “Google My Business”
   or “GMB”. Plugin slug, folder name, class names, database table, option keys,
   REST namespace and text domain are all unchanged — existing installs upgrade 
   silently with no settings reset and no database migration.
 * Tags: replaced two less-searched tags (“posts”, “automation”, “queue”) with terms
   users actually search for (“google my business”, “gmb”, “auto-post”). “scheduling”
   and “google business profile” retained.
 * Polish: wp-admin menu items remain the short “GMB Poster” so the sidebar stays
   scannable.

#### 2.0.1

 * Fix: location identifier format mismatch that blocked the “Use this location”
   save with an “Unexpected location identifier” error. The new Business Information
   API returns location names as `locations/{id}` without the account prefix, but
   the v4 LocalPosts endpoint we publish to requires `accounts/{account_id}/locations/{
   location_id}`. Locations are now normalised to the full v4 form when fetched,
   so the same identifier works for both selection and publishing.
 * Note: if you previously hit this error, click the **Refresh** button next to 
   the locations dropdown after updating to bust the 1-hour location cache, then
   re-pick your location.

#### 2.0.0

 * **Major feature: auto-publish to Google Business Profile via the official API.**
   Connect your Google account once via the built-in OAuth 2.0 wizard, pick your
   GBP location, flip the toggle on. Queued posts publish themselves at their scheduled
   slot — no more manual paste-and-click.
 * Per-install OAuth credentials: each install uses its own Google Cloud project.
   The plugin never embeds a shared client. Client Secret + refresh token stored
   encrypted at rest (AES-256-CBC, key derived from `AUTH_KEY`).
 * 4-step in-product setup wizard with copy-able redirect URI, step-by-step Google
   Cloud Console screenshots, and live connection status.
 * New Settings panel: connection status card, location picker, auto-publish toggle,
   change-location and disconnect actions.
 * New queue states: `Failed` (red pill, persisted Google API error message, one-
   click Retry).
 * New per-row actions: **Publish now** (for ready items) and **Retry publish** (
   for failed items) when auto-publish is enabled.
 * New REST endpoints (all `manage_options`-gated except the OAuth callback which
   uses a state-nonce): `/oauth/credentials`, `/oauth/start`, `/oauth/callback`,`/
   oauth/disconnect`, `/oauth/status`, `/locations`, `/location/select`, `/auto-
   publish`, `/publish/{id}`.
 * Schema migration to v2: queue table adds `google_post_id` and `error_message`
   columns. Runs automatically on update via `dbDelta()`.
 * Cron tick now publishes due items in batches of 5 (soft cap) so a transient API
   failure doesn’t fire 100 calls back-to-back.
 * Hardened OAuth callback: rejects requests with missing or invalid state nonces,
   surfaces Google’s `?error=access_denied` to the admin in a styled HTML error 
   page instead of a confusing “missing parameter” message.
 * Semi-manual mode preserved as a fallback. Existing installs that haven’t connected
   Google see the queue and dashboard widget exactly as before.

#### 1.1.1

 * Branding: plugin renamed from “GBPoster for Google Business Profile” to “GMB 
   Poster” (display name only). The plugin slug, folder name, class names, database
   table, and option keys are unchanged — existing installs upgrade silently with
   no data migration.
 * Updated banner artwork to match the new name.

#### 1.1.0

 * Feature: “Connect to Google Business Profile” wizard. New button + status pill
   on the Settings screen replaces the bare URL text field. Opens a 2-step modal:
   click to open business.google.com in a new tab, paste the URL back (via clipboard
   or manual paste). Backend validates the URL pattern, strips tracking parameters,
   and stores the canonical URL. Power users can still edit the URL directly via
   the toggle.
 * Feature: new REST endpoint POST /gbposter/v1/connect/save (manage_options only).
 * Polish: connection status pill on Settings shows the GBP location ID when one
   is detected in the URL.

#### 1.0.7

 * Compatibility: tested with WordPress 7.0; bumped Tested up to: 7.0. No code changes—
   full Playwright suite (16/16) and Plugin Check pass on a clean WP 7 install.

#### 1.0.6

 * Security: REST API permission_callbacks now perform per-resource checks. All 
   item-by-id endpoints (/item/{id}, /item/{id}/prepared, /posted, /skipped, /reschedule)
   verify the current user can edit the related WP post (current_user_can(‘edit_post’,
   $post_id)), not just edit_posts in general. /enqueue/{post_id} likewise. /next
   now walks ready items and only returns the first one the user has access to.

#### 1.0.5

 * REST: /gbposter/v1/item/{id} and /gbposter/v1/next responses now include `prepared_at`
   and `posted_at` timestamps. Helps client code (and end-to-end tests) verify queue-
   item lifecycle without a second DB lookup.

#### 1.0.4

 * Fix: corrected the Plugin URI to point to a working URL (https://defyn.com.au/).
 * Fix: text domain renamed from “gbposter” to “gbposter-for-google-business-profile”
   to match the plugin slug, so translations register correctly via the WordPress.
   org translation tools.
 * Security: $_POST input on the settings save handler is now sanitized at the input
   boundary with map_deep( …, ‘sanitize_text_field’ ) before per-field re-sanitization
   in GBPoster_Settings::sanitize().
 * Security: queue list query() rewritten so the ORDER BY column name uses the %
   i identifier placeholder in $wpdb->prepare(); the order direction is interpolated
   only from a strict 2-value (ASC|DESC) allowlist.

#### 1.0.3

 * Compliance: tightened phpcs:ignore annotations on the queue list-query (NotPrepared
   rule).
 * Compliance: prefixed all top-level variables in uninstall.php.

#### 1.0.2

 * Compliance: rewrote all custom-table queries to use $wpdb->prepare() with %i 
   identifier placeholder.
 * Compliance: removed unnecessary load_plugin_textdomain() (WordPress auto-loads
   since 4.6).
 * Compliance: removed Domain Path header (no /languages folder shipped).
 * Compliance: bumped Tested up to: 6.9, Requires at least: 6.2 (for %i support).
 * Polish: added translators comment for sprintf placeholder.

#### 1.0.1

 * Fix: settings save now redirects back to the Settings screen (was landing on 
   admin-post.php).
 * Fix: in cooldown mode, the first queued item is now scheduled for “now” rather
   than waiting one cooldown interval.
 * Fix: editor “Add to GBP queue” button now uses a REST endpoint (avoids the nested-
   form HTML issue inside the post editor).

#### 1.0.0

 * Initial release.
 * Custom queue table with five-status workflow.
 * Time-of-day slot scheduling and cooldown mode.
 * Auto-queue on publish with post-type and category filters.
 * Dashboard widget and admin Queue screen with the “Prepare next” one-click handoff.
 * Per-post opt-out meta box.
 * REST API endpoints for the handoff flow (require `edit_posts` capability and 
   a valid REST nonce).
 * UTM tagging for the “Learn more” link.

## 기초

 *  버전 **2.0.3**
 *  최근 업데이트: **5일 전**
 *  활성화된 설치 **10보다 적음**
 *  워드프레스 버전 ** 6.2 또는 그 이상 **
 *  다음까지 시험됨: **7.1.3**
 *  PHP 버전 ** 7.4 또는 그 이상 **
 *  언어
 * [English (US)](https://wordpress.org/plugins/gbposter-for-google-business-profile/)
 * 태그:
 * [auto post](https://ko.wordpress.org/plugins/tags/auto-post/)[gmb](https://ko.wordpress.org/plugins/tags/gmb/)
   [google business profile](https://ko.wordpress.org/plugins/tags/google-business-profile/)
   [google my business](https://ko.wordpress.org/plugins/tags/google-my-business/)
   [scheduling](https://ko.wordpress.org/plugins/tags/scheduling/)
 *  [고급 보기](https://ko.wordpress.org/plugins/gbposter-for-google-business-profile/advanced/)

## 평점

아직 제출된 리뷰가 없습니다.

[Your review](https://wordpress.org/support/plugin/gbposter-for-google-business-profile/reviews/#new-post)

[모든  리뷰 보기](https://wordpress.org/support/plugin/gbposter-for-google-business-profile/reviews/)

## 기여자

 *   [ Defyn ](https://profiles.wordpress.org/defyndigital/)

## 지원

할 말 있으신가요? 도움이 필요하신가요?

 [지원 포럼 보기](https://wordpress.org/support/plugin/gbposter-for-google-business-profile/)