{"id":327176,"date":"2026-06-30T02:15:20","date_gmt":"2026-06-30T02:15:20","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/zasp-zware-automatic-social-posts-and-login\/"},"modified":"2026-06-30T02:14:56","modified_gmt":"2026-06-30T02:14:56","slug":"zasp-zware-automatic-social-posts-and-login","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/zasp-zware-automatic-social-posts-and-login\/","author":13786645,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"1.0.0","tested":"7.0","requires":"6.2","requires_php":"8.0","requires_plugins":null,"header_name":"ZASP \u2013 Zware Automatic Social Posts and Login","header_author":"Zware Online","header_description":"Automatically share posts to Facebook, Instagram, X (Twitter), LinkedIn, and Pinterest on publish. Also adds social login buttons (Facebook, Google, Apple) to your WordPress login form. Smart, fast, and reliable.","assets_banners_color":"1b0a3e","last_updated":"2026-06-30 02:14:56","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/zwareonline.com\/plugins\/zasp","header_author_uri":"https:\/\/zwareonline.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":31,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"Shinji3rd","date":"2026-06-30 02:14:56"}},"upgrade_notice":{"1.0.0":"<p>Initial release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3591055,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3591055,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3591055,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3591055,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3590754,"resolution":"1","location":"assets","locale":"","width":1280,"height":680},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3590754,"resolution":"2","location":"assets","locale":"","width":1280,"height":680},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3590754,"resolution":"3","location":"assets","locale":"","width":1280,"height":680},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3590754,"resolution":"4","location":"assets","locale":"","width":1280,"height":680},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3590754,"resolution":"5","location":"assets","locale":"","width":1280,"height":680}},"screenshots":{"1":"Login Social tab \u2014 configure social login buttons (Facebook, Google, Apple, X, Twitch, Discord).","2":"Facebook tab \u2014 app credentials and auto-post settings with connection status.","3":"Post editor panel \u2014 per-network share buttons with last-share status.","4":"Guide tab \u2014 full reference of all free and premium features."}},"plugin_section":[],"plugin_tags":[2015,157,311,2056,154],"plugin_category":[56],"plugin_contributors":[264562],"plugin_business_model":[],"class_list":["post-327176","plugin","type-plugin","status-publish","hentry","plugin_tags-auto-post","plugin_tags-facebook","plugin_tags-instagram","plugin_tags-social-login","plugin_tags-social-media","plugin_category-social-and-sharing","plugin_contributors-shinji3rd","plugin_committers-shinji3rd"],"banners":{"banner":"https:\/\/ps.w.org\/zasp-zware-automatic-social-posts-and-login\/assets\/banner-772x250.png?rev=3591055","banner_2x":"https:\/\/ps.w.org\/zasp-zware-automatic-social-posts-and-login\/assets\/banner-1544x500.png?rev=3591055","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/zasp-zware-automatic-social-posts-and-login\/assets\/icon-128x128.png?rev=3591055","icon_2x":"https:\/\/ps.w.org\/zasp-zware-automatic-social-posts-and-login\/assets\/icon-256x256.png?rev=3591055","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/zasp-zware-automatic-social-posts-and-login\/assets\/screenshot-1.png?rev=3590754","caption":"Login Social tab \u2014 configure social login buttons (Facebook, Google, Apple, X, Twitch, Discord)."},{"src":"https:\/\/ps.w.org\/zasp-zware-automatic-social-posts-and-login\/assets\/screenshot-2.png?rev=3590754","caption":"Facebook tab \u2014 app credentials and auto-post settings with connection status."},{"src":"https:\/\/ps.w.org\/zasp-zware-automatic-social-posts-and-login\/assets\/screenshot-3.png?rev=3590754","caption":"Post editor panel \u2014 per-network share buttons with last-share status."},{"src":"https:\/\/ps.w.org\/zasp-zware-automatic-social-posts-and-login\/assets\/screenshot-4.png?rev=3590754","caption":"Guide tab \u2014 full reference of all free and premium features."},{"src":"https:\/\/ps.w.org\/zasp-zware-automatic-social-posts-and-login\/assets\/screenshot-5.png?rev=3590754","caption":""}],"raw_content":"<!--section=description-->\n<p><strong>Publish once, share everywhere.<\/strong><\/p>\n\n<p>Zware Automatic Social Posts and Login (ZASP) is a plugin that does two things:<\/p>\n\n<ol>\n<li><strong>Auto-posts to social networks<\/strong> the moment you hit Publish \u2014 Facebook, Instagram, X (Twitter), Threads, Bluesky, Mastodon, and Truth Social are included in the free version.<\/li>\n<li><strong>Adds social login buttons<\/strong> to your WordPress login and register pages so users can sign in with Facebook, Google, Apple, X, Twitch, or Discord in one click.<\/li>\n<\/ol>\n\n\n\n<h4>\ud83d\udce2 Social Auto-Posting<\/h4>\n\n<p>Connect your accounts once and ZASP handles publishing automatically:<\/p>\n\n<ul>\n<li><strong>Facebook Pages<\/strong> \u2014 posts with image and link preview via the Meta Graph API.<\/li>\n<li><strong>Instagram Business\/Creator<\/strong> \u2014 image posts with automatic aspect-ratio adjustment (4:5, 1:1, 1.91:1). Your original image is never modified \u2014 ZASP creates a temporary copy, uploads it, and deletes it immediately.<\/li>\n<li><strong>X \/ Twitter<\/strong> \u2014 tweets up to 280 characters with optional image, using OAuth 2.0 PKCE with automatic token refresh.<\/li>\n<li><strong>Threads<\/strong> \u2014 posts via the Meta Threads Graph API.<\/li>\n<li><strong>Bluesky<\/strong> \u2014 posts via the AT Protocol using app passwords.<\/li>\n<li><strong>Mastodon<\/strong> \u2014 posts to any Mastodon instance with automatic app registration.<\/li>\n<li><strong>Truth Social<\/strong> \u2014 posts via the Mastodon-compatible Truth Social API.<\/li>\n<\/ul>\n\n<p><strong>Per-post share controls<\/strong> \u2014 the post editor includes a ZASP panel where you can share to each connected network individually and see the last share status per network.<\/p>\n\n<p><strong>Stable token storage<\/strong> \u2014 access tokens are stored encrypted in a dedicated database table using libsodium when available. A weekly health check verifies Facebook\/Instagram token validity. X tokens auto-refresh before expiry.<\/p>\n\n\n\n<h4>\ud83d\udd11 Social Login<\/h4>\n\n<p>Let your visitors skip the registration form:<\/p>\n\n<ul>\n<li><strong>Facebook<\/strong> \u2014 one-click login\/register via Facebook OAuth 2.0.<\/li>\n<li><strong>Google<\/strong> \u2014 sign in with Google (OpenID Connect).<\/li>\n<li><strong>Apple<\/strong> \u2014 Sign in with Apple, including first-name\/last-name capture on first login.<\/li>\n<li><strong>X (Twitter)<\/strong> \u2014 login via X OAuth 2.0 PKCE.<\/li>\n<li><strong>Twitch<\/strong> \u2014 login via Twitch OAuth 2.0.<\/li>\n<li><strong>Discord<\/strong> \u2014 login via Discord OAuth 2.0.<\/li>\n<\/ul>\n\n<p>Three button styles: default (icon + text), rounded, and icon-only.<\/p>\n\n<p>OAuth callbacks use WordPress REST API endpoints (<code>\/wp-json\/zasp\/v1\/login\/{network}\/callback<\/code>) for compatibility with caching plugins.<\/p>\n\n<p><strong>User creation:<\/strong> Social login creates WordPress user accounts using standard WordPress functions (<code>wp_create_user<\/code>, <code>wp_set_auth_cookie<\/code>). New accounts are assigned the role configured in Settings \u2192 Login Social (default: Subscriber). Apple identity tokens are verified against Apple's public keys before any account is created or accessed. It is strongly recommended to set the default role to Subscriber and to restrict registration via the site's General Settings if you do not wish to allow open registration.<\/p>\n\n\n\n<h4>\u2b50 ZASP Premium<\/h4>\n\n<p>Expand to more platforms with the <strong>ZASP Premium<\/strong> add-on (available at <a href=\"https:\/\/zwareonline.com\">zwareonline.com<\/a>):<\/p>\n\n<ul>\n<li><strong>LinkedIn<\/strong> \u2014 post to personal profiles and company pages.<\/li>\n<li><strong>Pinterest<\/strong> \u2014 create Pins on any board.<\/li>\n<li><strong>Auto-Scheduler<\/strong> \u2014 queue posts to go out at configured times instead of publishing immediately, checked every 15 minutes.<\/li>\n<li><strong>Reshare Evergreen<\/strong> \u2014 automatically reshare older posts on a daily schedule, with configurable time, day-of-week filters, category\/tag filters, and per-post exclusion.<\/li>\n<li><strong>Missed-schedule recovery<\/strong> \u2014 if WordPress misses a scheduled share, ZASP Premium catches and retries it.<\/li>\n<li><strong>Priority email support.<\/strong><\/li>\n<\/ul>\n\n\n\n<h4>External Services<\/h4>\n\n<p>This plugin connects to the following external services. Data is only sent when you or your users explicitly trigger the relevant action (connecting an account, publishing a post, or logging in).<\/p>\n\n<p><strong>Meta \/ Facebook Graph API<\/strong> (<code>https:\/\/graph.facebook.com<\/code>, <code>https:\/\/graph.threads.net<\/code>)\nUsed to publish posts to Facebook Pages, Instagram Business\/Creator accounts, and Threads. Called when: (a) you connect a Facebook, Instagram, or Threads account; (b) a post is published and auto-posting is enabled; (c) you share manually from the post editor.\nData sent: your Facebook Page access token, post title, post content\/excerpt, post URL, and featured image (if any).\n<a href=\"https:\/\/www.facebook.com\/terms\">Meta Terms of Service<\/a> \u00b7 <a href=\"https:\/\/www.facebook.com\/policy\">Meta Privacy Policy<\/a><\/p>\n\n<p><strong>X \/ Twitter API<\/strong> (<code>https:\/\/api.twitter.com<\/code>, <code>https:\/\/twitter.com\/i\/oauth2<\/code>)\nUsed to post tweets and to authenticate your X account via OAuth 2.0 PKCE. Called when: (a) you connect your X account; (b) a post is published and auto-posting is enabled; (c) you share manually; (d) a user logs in with X.\nData sent: your X OAuth credentials, post content, and (optionally) the featured image.\n<a href=\"https:\/\/twitter.com\/en\/tos\">X Terms of Service<\/a> \u00b7 <a href=\"https:\/\/twitter.com\/en\/privacy\">X Privacy Policy<\/a><\/p>\n\n<p><strong>Bluesky \/ AT Protocol<\/strong> (<code>https:\/\/bsky.social<\/code>)\nUsed to post to Bluesky using app passwords. Called when a post is published and auto-posting is enabled, or when you share manually from the post editor.\nData sent: your Bluesky handle, app password (used to obtain a session token), post content, and (optionally) the featured image.\n<a href=\"https:\/\/bsky.social\/about\/support\/tos\">Bluesky Terms of Service<\/a> \u00b7 <a href=\"https:\/\/bsky.social\/about\/support\/privacy-policy\">Bluesky Privacy Policy<\/a><\/p>\n\n<p><strong>Mastodon (user-configured instance)<\/strong>\nUsed to post to the Mastodon instance you configure. Called when a post is published and auto-posting is enabled, or when you share manually. The specific API domain depends on your configured instance (e.g., <code>https:\/\/mastodon.social<\/code>).\nData sent: your Mastodon instance URL, OAuth credentials, post content, and (optionally) the featured image.\n<a href=\"https:\/\/mastodon.social\/privacy-policy\">Mastodon Privacy Policy<\/a> (varies by instance)<\/p>\n\n<p><strong>Truth Social<\/strong> (<code>https:\/\/truthsocial.com<\/code>)\nUsed to post to Truth Social via its Mastodon-compatible API. Called when a post is published and auto-posting is enabled, or when you share manually.\nData sent: your Truth Social OAuth credentials, post content.\n<a href=\"https:\/\/truthsocial.com\/terms-of-service\">Truth Social Terms<\/a> \u00b7 <a href=\"https:\/\/truthsocial.com\/privacy-policy\">Truth Social Privacy Policy<\/a><\/p>\n\n<p><strong>Google OAuth2<\/strong> (<code>https:\/\/accounts.google.com<\/code>)\nUsed to sign users into your WordPress site via Google (OpenID Connect). Called only during a user login\/registration flow initiated by the user.\nData sent: your Google OAuth2 Client ID and Client Secret. Google returns the user's name, email, and profile picture URL, which are stored in your WordPress database.\n<a href=\"https:\/\/policies.google.com\/terms\">Google Terms of Service<\/a> \u00b7 <a href=\"https:\/\/policies.google.com\/privacy\">Google Privacy Policy<\/a><\/p>\n\n<p><strong>Apple ID<\/strong> (<code>https:\/\/appleid.apple.com<\/code>)\nUsed to sign users into your site via Sign in with Apple. Called only during a user login\/registration flow.\nData sent: your Apple Services ID and team credentials. Apple returns a signed identity token containing the user's name and email, which are stored in your WordPress database.\n<a href=\"https:\/\/www.apple.com\/legal\/internet-services\/itunes\/us\/terms.html\">Apple Terms of Service<\/a> \u00b7 <a href=\"https:\/\/www.apple.com\/legal\/privacy\/\">Apple Privacy Policy<\/a><\/p>\n\n<p><strong>Twitch API<\/strong> (<code>https:\/\/api.twitch.tv<\/code>, <code>https:\/\/id.twitch.tv<\/code>)\nUsed to sign users into your site via Twitch OAuth 2.0. Called only during a user login\/registration flow.\nData sent: your Twitch Client ID and Client Secret. Twitch returns the user's display name and email, which are stored in your WordPress database.\n<a href=\"https:\/\/www.twitch.tv\/p\/en\/legal\/terms-of-service\/\">Twitch Terms of Service<\/a> \u00b7 <a href=\"https:\/\/www.twitch.tv\/p\/en\/legal\/privacy-policy\/\">Twitch Privacy Policy<\/a><\/p>\n\n<p><strong>Discord API<\/strong> (<code>https:\/\/discord.com\/api<\/code>)\nUsed to sign users into your site via Discord OAuth 2.0. Called only during a user login\/registration flow.\nData sent: your Discord Client ID and Client Secret. Discord returns the user's username and email, which are stored in your WordPress database.\n<a href=\"https:\/\/discord.com\/terms\">Discord Terms of Service<\/a> \u00b7 <a href=\"https:\/\/discord.com\/privacy\">Discord Privacy Policy<\/a><\/p>\n\n<p>No data is ever sent to Zware Online servers by this plugin.<\/p>\n\n\n\n<h4>Privacy<\/h4>\n\n<p>ZASP stores access tokens and user data (names, emails, social network UIDs) in your own WordPress database. No data is transmitted to Zware Online or any third party beyond the social network services listed above and as described in each service's entry.<\/p>\n\n<h3>Support<\/h3>\n\n<p>For support, visit <a href=\"https:\/\/zwareonline.com\">zwareonline.com<\/a> or email support@zwareonline.com.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin folder to <code>\/wp-content\/plugins\/<\/code>, or install via <strong>Plugins \u2192 Add New<\/strong>.<\/li>\n<li>Activate the plugin.<\/li>\n<li>Go to <strong>Social &amp; Login<\/strong> in the WordPress admin menu.<\/li>\n<li>Configure the credentials for each social network or login provider you want to use.<\/li>\n<li>Connect your accounts using the Connect buttons in each network tab.<\/li>\n<li>Done \u2014 ZASP will share new posts automatically and show social login buttons on your login page.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20work%20with%20caching%20plugins%3F\"><h3>Does this work with caching plugins?<\/h3><\/dt>\n<dd><p>Yes. OAuth callbacks use WordPress REST API endpoints (<code>\/wp-json\/zasp\/v1\/\u2026<\/code>) which are excluded from page caches in most caching plugins. Session cookies are set server-side after login, so caching does not interfere with authentication.<\/p><\/dd>\n<dt id=\"why%20does%20instagram%20require%20a%20business%20or%20creator%20account%3F\"><h3>Why does Instagram require a Business or Creator account?<\/h3><\/dt>\n<dd><p>Meta's Graph API only allows automated publishing to Instagram Business or Creator accounts. Personal accounts cannot be used for automated posting. You can convert a personal account to a Creator account at no cost in Instagram's settings.<\/p><\/dd>\n<dt id=\"my%20facebook%20token%20keeps%20getting%20revoked.%20what%20do%20i%20do%3F\"><h3>My Facebook token keeps getting revoked. What do I do?<\/h3><\/dt>\n<dd><p>ZASP uses long-lived Page access tokens. Common causes of revocation: changing your Facebook password, removing the app from your Facebook account security settings, or Meta revoking it due to a policy violation. ZASP will notify you when a token becomes invalid and you can reconnect in one click from the Settings page.<\/p><\/dd>\n<dt id=\"can%20i%20post%20to%20multiple%20facebook%20pages%3F\"><h3>Can I post to multiple Facebook pages?<\/h3><\/dt>\n<dd><p>Yes. All Pages accessible from your Facebook account are stored when you connect. You can switch the active page from Settings \u2192 Facebook.<\/p><\/dd>\n<dt id=\"does%20zasp%20modify%20my%20images%3F\"><h3>Does ZASP modify my images?<\/h3><\/dt>\n<dd><p>No. When Instagram requires an aspect-ratio adjustment, ZASP creates a temporary copy of the image, uploads it to Instagram, and then immediately deletes the temporary file. Your original featured image is never modified.<\/p><\/dd>\n<dt id=\"where%20are%20social%20login%20users%20stored%3F\"><h3>Where are social login users stored?<\/h3><\/dt>\n<dd><p>In your WordPress user database, the same as any user registered through any other method. Social login matches existing accounts by email address first, then by network UID. If a matching email already exists the user is logged in \u2014 no duplicate account is created.<\/p><\/dd>\n<dt id=\"can%20i%20restrict%20which%20roles%20social%20login%20assigns%3F\"><h3>Can I restrict which roles social login assigns?<\/h3><\/dt>\n<dd><p>Yes. Go to Settings \u2192 Login Social \u2192 Default Role and choose the role assigned to new accounts created through social login. It is recommended to use Subscriber (the default) unless your site has a specific need for higher-privileged self-registration.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<li>Free: Social Login with Facebook, Google, Apple, X, Twitch, Discord.<\/li>\n<li>Free: Auto-post to Facebook, Instagram (with smart crop), X, Threads, Bluesky, Mastodon, Truth Social.<\/li>\n<li>Free: Per-post instant share and per-network share controls from the post editor.<\/li>\n<li>Encrypted token storage with libsodium.<\/li>\n<li>Weekly Facebook\/Instagram token health check.<\/li>\n<li>X OAuth 2.0 PKCE with automatic token refresh.<\/li>\n<\/ul>","raw_excerpt":"Automatically share posts to Facebook, Instagram, and X when you publish. Let users sign in with Facebook, Google, Apple, X, Twitch, or Discord.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/327176","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=327176"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/shinji3rd"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=327176"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=327176"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=327176"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=327176"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=327176"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=327176"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}