Social Crossposting
Feature rich component, which posts items (articles, ads, events, blog posts, etc.) in popular social networks and blogging systems: Facebook, Twitter, VKontakte, LinkedIn and LiveJournal. You just write an article, insert a marker in it and save.
Features
Supports virtually any content publishing components like Joomla Srticles, K2, Zoo, EasyBlog, Ohanah etc. Absolutely autonomous process. You just set up everything, add a cron job or enable cron plugin and relax! Full SEO URLs support (sh404SEF, JoomSEF etc.), easy installation and setup (no "channels", "synchronizations" etc). Each network is completely stand alone: you can post you ads to Facebook, articles to LinkedIn and events to Twitter. Very rich reporting system and crossposting Journal to avoid duplicates and control submissions. A lot of options for each network separately: add link, title, some text before post or before title, limit post length and more.
Compatibility: Joomla 3.0+
Current version: 4.1.8
Why Social Crossposting?
Social Crossposting works exactly as you expect and doesn't require any extra actions. Its functionality can be extended indefinitely via plugins, which we will gladly develop for you absolutely free. In short, you have to set up everything once and then just mark content, which you want to be posted. You don't need to sync anything, don't have to constantly setup component. It just works. And you always be aware of what's happening via versatile report system, which stores all submissions in crossposting journal. Your items will never be doubled or posted twice!
Supported networks: Facebook, Twitter, Tumblr, LinkedIn, VKontakte, Odnoklassniki, LiveJournal.
Full list of features
- You can post articles to any group, page, event or blog available for you in particular network.
- Each social network can be enabled or disabled for any content provider separately.
- Displays list of all your groups, pages or walls, to post into (where allowed).
- Post Limit option to post only part of the text (announce).
- Add image to post: from Images tab, any desired image from article body or custom image.
- Add custom pre-title and pre-post text for each network separately.
- Add custom number of article tags to posts (where available).
- Add article title to post.
- Add link to original article to post.
- Turn on/off network's specific options: visibility, privacy, post author etc.
- You can quickly reset any network, if access token is expired or any other permanent error occurred.
- Article links are 100% SEF and generated by native routers of each content provider.
- Very detailed report about posted items (can be sent to admin email).
- Journal to manage all your posted items: check, delete or mark not posted.
- Tons of different options to customize every network and post contents.
- Very easy to use, when you setup everything properly.
Screenshots
Demo
To see the backend demo click the button below and login (username: demo, password: demo).
Available Plugins
All plugins require an active Social Crossposting license. If you have an active license, please, login to buy or download the desired plugin.
If you can't find desired plugin in the list, send us a request, and we will create it for you!
General Plugins
Expand main component's functionality, mostly related to different tasks and services.
Insert Marker
Automatically inserts marker to any item (old or new), when it is saved. NOTE: Old items with marker will be processed as well!
Current version: 4.1.5
Cron Alternative
Can be used as an alternative to cron service. Do NOT use this plugin, if you have cron service on your server!
Current version: 4.1.5
Content Support
Add support for components with existing user database to send one-time campaign email (notifications).
Content & FLEXIcontent Support
Adds support for Joomla Content categories and articles.
Current version: 4.1.5
K2 Support
Adds support for K2 categories and items.
Current version: 4.1.5
Zoo Support
Adds support for Zoo categories and items.
Current version: 4.1.5
AdsManager Support
Adds support for AdsManager categories and ads.
Current version: 4.1.5
JEvents Support
Adds support for JEvents categories and events.
Current version: 4.1.5
Ohanah Support
Adds support for Ohanah categories and events.
Current version: 4.1.5
EasyBlog Support
Adds support for EasyBlog categories and entries.
Current version: 4.1.5
SEBLOD Support
Adds support for SEBLOD categories and articles.
Current version: 4.1.5
Jom Classifieds Support
Adds support for Jom Classifieds categories and ads.
Current version: 4.1.5
RSBlog Support
Adds support for RSBlog categories and entries.
Current version: 4.1.5
DJ-Classifieds Support
Adds support for DJ-Classifieds categories and items.
Current version: 4.1.5
OS Property Support
Adds support for OS Property categories and properties.
Current version: 4.1.5
Cobalt 8 Support
Adds support for Cobalt 8 sections and records.
Current version: 4.1.5
Change Log
4.1.8
- ADDED: List of permissions, which require approval, in Facebook settings. Select only those you have approved!
- FIXED: Empty title and text, when character limit is empty.
- FIXED: Redirection loop, when Facebook app authorization has errors or canceled (updated).
4.1.7
- ADDED: Support for new Facebook API. You now MUST submit your application for review to enable posting to Facebook!
- CHANGED: User Feed option removed for Facebook. Posting to your own page is not allowed anymore.
- FIXED: Redirection loop, when Facebook app authorization has errors or canceled.
- Minor bug fixes and improvements.
4.1.6
- ADDED: Debug option to save additional information in the log for future debugging.
- FIXED: API version is now required, but missing from VKontakte API requests.
- FIXED: Post Limit is not working properly in some cases.
- FIXED: Article marked as posted, when neither error nor post ID returned.
- Twitter posts now use extended 280 characters limit.
- Minor bug fixes and improvements.
4.1.5
- System files were changed. Update all plugins after extension upgrade!
- CHANGED: Date Format option removed, all date formatting moved to language files.
- FIXED: "Empty string passed to getElementById()" warning in admin.
- Slightly improved admin interface.
- Minor bug fixes and improvements.
4.1.4
- АDDED: Components option in Insert Crossposting Marker plugin to insert marker into selected components only.
- FIXED: "Undefined variable: result" notice, when saving extension's options.
- FIXED: "Illegal string offset 'networks'" notice, when posting items.
4.1.3
- АDDED: Additional post text cleaning for better output.
- FIXED: Images from item text, starting with slash, not properly processed.
- CHANGED: Decode option removed, item text is now decoded by default.
- Improved image and link processing.
4.1.2
- ADDED: DJ-Classifieds and OS Property support plugins.
- FIXED: JomClassifieds plugin doesn't properly update description after advert is posted.
- FIXED: Image link sometimes contains double slash, when site URL is appended.
- FIXED: Missing language string for partially posted items in Journal.
- FIXED: Date is not properly formatted for some formats.
- FIXED: Networks can not be refreshed due to JavaScript message.
- FIXED: Reset Options button is not working properly.
- Cron plugin was slightly improved.
- Minor bug fixes and improvements.
4.1.1
- ADDED: Short Link option for VK to create short link using VK service.
- ADDED: Support for Joomla Update system for all content plugins.
- ADDED: License check for all content plugins.
- ADDED: Cobalt 8 content plugin.
- Minor bug fixes and improvements.
4.1.0
IMPORTANT!
We've changed a few global things in events and content plugins. After update of the main component previous versions of content plugins will completely stop working. You MUST uninstall previous version of every content plugin and the install the new one!
- Event names and plugin folder have changed. All content plugins must be updated!
- Cron link changed. Don't forget to update your cron job!
- ADDED: Post Limit option for Twitter.
- ADDED: Link to target both in Report and Journal.
- ADDED: Total number of warning in report.
- ADDED: Support for Joomla Update System.
- CHANGED: Image link is excluded from calculation of Twitter post length according to recent API changes.
- FIXED: Server protocol is not properly defined, HTTP always returned.
- FIXED: Pre-title and pre-post text are not added to post.
- FIXED: Absolute links in articles are not properly parsed.
- FIXED: Total number of errors not properly calculated in report.
- Reworked admin UI with new homepage, increased stability and optimized code.
- Some language strings removed, changed or added.
- Minor improvements and bug fixes.
4.0.3
- FIXED: Error message not properly displayed, when LinkedIn token expires.
- FIXED: Error message not properly displayed, when Odnoklassniki user fetching error is returned.
- FIXED: Token expiry date not properly updated for Facebook and Odnoklassniki.
4.0.2
- ADDED: Sources dropdown list on Journal page to filter entries by source.
- ADDED: Post ID in crossposting report and in Journal now also has direct link to post.
- FIXED: Post limit not calculated properly for most networks.
- Ohanah support plugin now compatible with Ohanah 3.0.
- Week days and months in date format now follow site's language.
- Slightly improved admin interface.
- Some language strings changed, some added.
- Minor improvements.
4.0.1
- FIXED: Images are not properly posted on Twitter, if image file is local and server restrictions applied.
- FIXED: Images are not properly posted on Facebook user pages, groups and events, when Add Link option is turned off.
- FIXED: Undefined index "link" error in K2 support plugin.
4.0.0
IMPORTANT!
This is a major update. You will have to setup everything from the scratch, excluding social network applications. We highly recommend you to remove previous version and all installed plugins and do a clean installation of the new one. It is possible to upgrade without uninstalling previous version, but in this case you'll have to manually reset all options. Go to Social Crossposting -> Options, click Reset button and then Save. Now you can process with extension's setup.
Joomla 2.5
We removed Joomla 2.5 support once and for all. Joomla 2.5 is a VERY old framework and not supported even by its developers. If you want to upgrade Social Crossposting and use its new features, you should update your Joomla to the latest version.
HIGHLIGHTS
Network Flows
We carefully inspected communication flows with APIs of all networks to make sure everything works as expected and error messages are properly processed. Social Crossposting now uses latest API versions, a lot of things were changed and improved. We even added workarounds for some known "permanent" issues with APIs to ensure seamless crossposting.
In short, every single aspect was reworked and improved. Crossposting is now faster, more stable and almost fail safe!
Content Plugins
All content plugins were updated to support latest changes. Plugins now use native component's router (if any) to generate better links to items. You MUST update every content support plugin you own, otherwise crossposting will stop working.
Future Plans
We will continue monitoring other social networks for posting availability and add them, if they have one. Currently we're planning to add XING (may never happen due to their crazy restrictions), Pinterest and Mail.ru (user feed only).
If you want any particular network to be added to the list, just send us an email and will add it, if possible!
CHANGE LOG
- New slick admin UI with lots of new options. NOTE: All your settings will be lost after upgrade!
- Cron link changed. Don't forget to update your cron command after update!
- Item tags can now be added to the end of the post as tags or hashtags.
- Item title can now be added to Facebook, LinkedIn, VKontakte and Odnoklassniki posts.
- Greatly improved and standardized error handling to provide more detailed report.
- A lot of bugs fixed, mostly related to posting items with images and API updates.
- Improved API requests and error handling.
- Improved journal searching and filtering.
- Cron and Insert Marker plugin were removed from original package. You need to download them from our site manually.
- Many language strings were changed, removed or added.
- A lot of minor bug fixes and improvements.
3.0.0
- Absolutely new extension concept: now it's not just plugin, but a component with a lot of features, new networks and plugin support system.
2.0.0
- Completely reworked version of initial plugin.
1.0.0
- Initial release.
Documentation
Installation
Go to Extensions -> Manage -> Install page, upload distribution package you've previously downloaded and click Install. Before you enable extension you must setup it first.
For plugins: Go to Extensions -> Plugins, find the desired plugin and open its settings. Setup accordingly and only then enable.
For modules: Go to Extensions -> Modules, find the desired module and open its settings. Setup accordingly and only then enable.
For components: Hover your mouse over Components menu item, find the desired component and go to Options page. Setup everything accordingly and don't forget to check Permissions tab.
License ID: Enter anything in License ID field, if it is present in extension options.
Prologue: How it Works
Please, read carefully information below, for it'll help you understand, how Social Crossposting works.
Social Crossposting extension uses special markers to define, which item (article, ad, event, blog post etc.) should be posted. If you want to post certain items to desired social networks, you must put a marker in each item and publish it. Item also must have publish date set in the past to be available for posting, otherwise it'll be skipped. To summarize this, you must fulfill three basic conditions before posting:
- crossposting marker must be added to the item body;
- item date must be set in the past;
- item must be published.
When posting process starts (see Posting Items section), all published items with markers are taken from database. After that each item is "prepared" (text cut to post limits and decoded, HTML tags striped if necessary, custom picture added, etc.), checked for presence in crossposting journal and passed to API of each enabled social network. At the end of the posting process a corresponding entry is added to crossposting journal and report is generated. Each journal entry contains all necessary info, which allows to find the item: item ID, network, target ID, post ID and so on. For example, if you have 3 networks enabled and just posted a single item, 3 entries will be created in crossposting journal.
You should remember these things, when posting:
- Before using cron, try to post a couple items using manual mode (see below). This will allow you to fix common setup mistakes.
- Crossposting marker will be deleted from the item only when it is published in all selected networks. Until that it'll remain intact, but hidden at front-end.
- Number of Items option limits items with crossposting marker, not just latest items.
- Errors in report generated by social networks themselves, not Social Crossposting. So in most cases you may search these errors and find the solution in Google.
Networks Setup
Install extension as usual and setup desired networks. At leas one social network must be setup and enabled.
Facebook Settings
- Go to Facebook developers page, click "Create New App" button.
- On the next page enter application name, select any category and click "Create App ID".
- In application settings click "Add Platform", choose "Website" and enter your site URL. On the same page enter App Domains (note, that www.mysite.com and mysite.com are different domains!) and your email in Contact Email field.
- In the left menu select Products, click Add Product and select Facebook Login. Enter this in "Valid OAuth redirect URIs" field (note the protocol and use https, if necessary):
http://yourdomain.com/administrator/index.php?option=com_socialcrossposting&view=options - Save application, select App Review tab on the left and make your app available to public.
- Get Application ID and Secret Key on the same page and enter them in corresponding fields in component settings. Save settings.
- Get approval for desired permissions from Facebook and select them in Permissions field.
- On the next page confirm application access to your data (ignore Facebook warnings and grant all permissions). Save settings one more time.
If everything was done properly, you'll get a list of available targets. Select at least one of them, setup other options and enable posting to Facebook.
IMPORTANT: Since 04 April 2018 Facebook requires you to submit application to get extended permissions. You need to go to App Review Page of your application and request for the following permissions:
For posting into groups:
- Groups API
- groups_access_member_info
- publish_to_group
For posting to Events:
- user_events
Posting to your own Facebook page (user feed) is not allowed anymore!
Twitter Settings
- Go to Twitter developers page and create new application.
- Enter application name, description, put your site address as Website and Callback URL.
- Give Read & Write access to your application.
- Create access token under Keys & Tokens tab.
- Take Consumer Key, Consumer Secrett, Access Token and Access Token Secret and enter them in corresponding fields in component settings.
Now you can setup other options and enable posting to Twitter.
Tumblr Settings
- Go to Tumblr developers page and create application.
- Fill the bunch of info according to your liking and save application.
- Take Consumer Key and Secret Key from application's page and enter them in corresponding fields in component settings.
- On the next page confirm application access to your data. Save settings one more time.
If everything was done properly, you'll get a list of available targets. Select at least one of them, setup other options and enable posting to Tumblr.
LinkedIn Settings
- Go to LinkedIn developers page and create application, filling the form according to your liking.
- Save application and on its settings page, under Authentication tab put this as OAuth 2.0 "Authorized Redirect URIs":
http://yourdomain.com/administrator/index.php?option=com_socialcrossposting&view=options - Take Client ID and Client Secret and enter them in corresponding fields in component settings. Save settings.
- On the next page confirm application access to your data. Save settings one more time.
If everything was done properly, you'll get a list of available targets. Select at least one of them, setup other options and enable posting to LinkedIn.
NOTE: Since May 2015 only members of LinkedIn Partner Program can get access to expanded API, receive a list of groups and create posts in them. You need to manually request access for rw_groups permission for your application, otherwise you will be able to post only to user feed.
VKontakte Settings
- Go to VKontakte developers page and create new application. Choose Standalone as type and enter application name.
- In Settings section enable Open API, then enter site address and base domain. Save application.
- Take Application ID and Secret Key on the same page and enter them in corresponding fields in component settings. Save settings.
- When page reloads, click "Login to VKontakte" link. A new window will open, where you will have to authorize your application and give it access to all requested actions.
- After that look into browser's address line, take access_token value and enter it in corresponding field in component settings. Save settings one more time.
If everything was done properly, you'll get a list of available targets. Select at least one of them, setup other options and enable posting to VKontakte.
Odnoklassniki Settings
- Go to Odnoklassniki developers page, register as a developer and wait until you request is approved.
- Go to your applications page (Games ->My Uploaded Games) and click "Add App", choose "External application" and fill the form completely, including image links.
- Add the following URL in the "List of permitted redirect_uri":
http://yourdomain.com/administrator/index.php?option=com_socialcrossposting&view=options - Select "External" for Application Type and "Hidden" for Status. Save application.
- You'll receive email shortly. Save it somewhere and never EVER delete it, because there's no way to restore application keys!Get Application ID, Public Key and Secret Key from the same email and enter them in corresponding fields in component settings. Save settings.
- Write an email to api-support@odnoklassniki.ru, provide your application ID taken from email and ask for permission to use mediatopic.post method and GROUP_CONTENT, LONG_ACCESS_TOKEN application permissions.
If everything was done properly, you'll get a list of available targets. Select at least one of them, setup other options and enable posting to Odnoklassniki.
LiveJournal Settings
No particular instructions, you only have to be registered there. Just enter your username and password and save the settings. You'll get a list of available targets. Select at least one of them, setup other options and enable posting to LiveJournal.
Options & Networks Settings
Each option has a hint, which will help you quickly understand, what it does. If you still confused, refer to the short options and network settings guide below.
General options
- Number of items — A number of items to process in one run. It includes items from all available content providers (Joomla, K2, Zoo etc).
- Decode text — If your posts have wrong encoding, this option might help. Do NOT enable it, if everything displays properly!
- URL Shortener — List of URL shorteners like is.gd, to.ly and others. Note, that some networks do not already like shortened URLs, some may start disliking them in the future.
- Date format — Date format, which will be used in all possible situations. Follows PHP date() function rules.
- Ellipsis — Set of characters to be displayed at the end of posted title or text, if it exceeds limits. Several dots (...) is a commonly used ellipsis.
- Delimiter — Set of characters to delimit different parts of final post text: title, tags etc. Examples: -, ::, # etc.
Admin options
- Display messages — Controls message displaying in admin area. You can choose between all messages, errors only or none.
- Journal columns — Hide or display desired table columns on Journal page to save some space and make data reading easier. Choose All Columns to display everything.
- Cron secret — Set of any characters to secure your cron job. Example: 23hh098mfjf
- Auto prune — If enabled, journal entries older than given value in days will be deleted on each run.
- Send report — If enabled Crossposting Report will be sent to admin email. Otherwise it'll be displayed right on screen (useful for manual mode).
General network settings
- Post limit — Number of characters to display in post (includes title and image link length for some networks). It should start with 1 and don't exceed network limit (see hint).
- Add image — Item image (if any) will be added to all posts in particular network (for all possible limitations see hint).
- Custom image — URL to any custom picture, which you want to add to ALL your posts in particular network.
- Add link — Link to posted item will be added to all post in particular network.
- Add title — Item title will be added to the text of all posts in particular network.
- Add tags — Item tags (if any) will be added to all posts in particular network.
- Pre-title text — Any text to display before item post title. Example: "Cool news".
- Pre-post text — Any text to display before item post text. Example: "Cool business report".
Network specific settings
- Keep images —All item images will be kept in post (Tumblr and LiveJournal only).
- Link text — Custom text for the link (all networks except Twitter, VKontakte and Odnoklassniki). Example: "Read more".
- Link description — Custom description for the link (Facebook and LinkedIn only). Example: "Read full article on our site".
- Post visibility — Who will be able to read your posts: everyone or friends (connections) only.
- From group — Posts to groups will be added from the name of the group (VKontakte and Odnoklassniki only).
- Add signature —Name of the author with a link to his profile will be added to post (VKontakte only).
- Allow comments — Enable or disable comments to all posts in particular network (Odnoklassniki and LiveJournal only).
- Time zone — GMT offset in hours, which affects post date (LiveJournal only).
- Enable groups — Enables groups retrieval and posting (LinkedIn only). You must be a member of LinkedIn Partner program to use this option.
Posting Items
To make certain items available for posting you must add a {crossposting}
marker in them. You can do this manually or with marker injector, which will automatically add a marker in every item on save, including old and new items.
NOTE: If you set to autoprune journal and then re-saved some old items, they'll eventually be marked and re-posted, when corresponding entries are deleted. So be careful with combining these two options!
Using Cron Job
When you done writing and added a marker, set up a cron job. You will find a link for your cron job on extension's home page. If you don't know, how to use cron, contact your hosting provider on this matter.
Cron plugin
If you don't have access to cron, you can enable Crossposting Cron plugin. Open its settings, set run period in minutes, but don't make it too low (60 minutes is recommended). Similar to cron job you also can set category and source for bulk posting, but don't forget to remove them after the first launch or all your items will be posted again and again.
Manual Posting
Manual method is recommended for testing purposes only. Use it before adding a cron job to fix all possible errors and make sure, everything works fine. Set Send Report option to No, take an address from cron link and launch it in browser like this:
http://yoursite.com/index.php?option=com_socialcrossposting&task=post&secret=XXXXXX
Where ХХХХХХ — secret key from extension's settings. When crossposting is finished, you'll get a detailed report on every item and social network.
Add Images to Posts
If you want to add image to your post (excluding LiveJournal), you need to add it to your item first. This can be done in two ways:
- Add desired image via Image tab (if any).
- Add an image to item text. If several images added, only the first one will be taken. To use particular image, add "crossposting" class to it.
NOTE: Image tab always has a priority. Don't use it, if you want to post certain image from item text.
Bulk Posting
If you want to post all items from certain category, add 2 more values to the link: category and source like this:
http://yoursite.com/index.php?option=com_socialcrossposting&task=post&category=id&source=name&secret=XXXXXX
id can be found in Categories section of desired content component. And name is a source name: "content", "k2", "zoo" etc. (the one given after "com_" prefix, without quotes).
Don't forget to increase Number of Items value (if needed) to cover all items in selected category.
Display marker instead of posting
If for any particular reason you just want to display {crossposting}
marker in your item, put it between <code> tags. In this case marker will not be hidden from the item text and will not be processed, when posting.
Content Plugins
Social Crossposting can work with ANY content component, you just need a plugin for it. Some plugins (AdsManager, JomClassifieds, JEvents and others) allow you to set text or title format, using field names. For example:
Title: {title}
Author: {author}
Text: {text}
In example above "{title}", "{author}" and "{text}" are field names, taken from some imaginary component. Replace them with field names from your content component and item will be posted in given format. Otherwise standard title and text fields will be used.
Additional info
Please, note the information below:
- All items in the settings have hints. Please, read them! There're plenty useful information out there.
- If your Facebook posts doesn't have an image, install our free Social Meta Tags plugin from this page. This plugin will add <og> meta tags to your site and allow Facebook to take a picture for your post from provided link.
- If something doesn't work, triple check component and application settings and permissions (especially for extra spaces in input fields).
- If you don't see targets in certain social network settings, try to Refresh network or delete Access Token from network settings (if available).
- When testing Social Crossposting, set Error Reporting to Maximum in Joomla settings. This will allow you to see all possible PHP errors and add them to yous support request.
- All permission errors from Report can only be fixed in your application or social network account! They have nothing to do with Social Crossposting. It only tries to post given items and returns you a network reponse on this action.
If you're getting "No items available for posting" in crossposting report, there can be only a few reasons for that:
- You're trying to post an item from component, which doesn't have Social Crossposting plugin installed.
- Item does NOT contain a marker. Check, if
{crossposting}
marker is present in your item. - Marker is wrongly typed or inserted. Check item source for additional tags in
{crossposting}
marker. Example: {<b>crossposting</b>}. - Item you're trying to post was added to Crossposting Journal and marked as sent. Look into journal and delete ALL entries for this item.
- You've set to post items from particular categories in plugin settings and items, you want to post, are NOT in one these categories.
- Your item is set to be published in the future. Sometimes it happens because you did this, but sometimes it can be timezone configuration on your server. Check your item publishing date and set it in the past, if necessary.