search

About Midrub

Midrub is a platform based on CodeIgniter which allows you to have a Social Marketing Tool. At this moments Midrub supports up to 20 social networks and you can use it to schedule posts, read insights and moderate your comments. It supports RSS Feeds and has a planner where you can schedule easy your posts.

Midrub is not a toy and it is one of the few scripts which allows you to start a stable business.

Why Midrub could be the right solution to start an online business:

  1. Midrub uses official api and you can sign in a contract with social networks. Official api means stable business because there aren't bugs in the api.
  2. Any reported bug will be fixed in the same day or if is minor will be fixed in the next update(max a month).
  3. Midrub already has the same planner which you're seeing in Hootsuite, and in november will be added a button in the quick schedule popup which will allow to select the days of the week and hour when to publish a post.
  4. Midrub is not another script which will be closed for a stupid reason. You can be sure it will be improved for years.
  5. Create your custom themes.
  6. Manage menu from admin.
  7. Create a custom theme for frontend.
  8. Create custom plans with dynamic added features.
  9. The Midrub Stream and Midrub's ADS Manager will make Midrub more useful than other similar tools.

If you have a question, you can look in the Midrub's blog http://blog.midrub.com/ where you will find more information or here https://www.midrub.com/.

In my Youtube Channel you will find videos about any Midrub's feature https://www.youtube.com/channel/UCQ-LP-o5nlieQfdKfFjX0Sw

Midrub Installation

Download Midrub platform and extract all files from Midrub-app folder, compile it on server.

Create MySQL data base and import the sql file from the documentation folder.

Open config.php file from application/config/ and replace the http://www.examle.com/ with your website address, also replace Midrub with your site name. Add your contact email (will be used as expeditor for sent messages) and notification email where you will receive the system notifications.

Open file database.php from application/config/ folder and add the server address to the created data base, the name of the data base, user and password.

After you have accomplished the steps above, you have to configure the platform, so you can connect social networks to make posts. Next you will find detailed information about how to configure each social network.

You can login on your website with username: administrator and password: 12345678 as admin.

You can see how to install Midrub here https://www.youtube.com/watch?v=Cr_HODu9ou4

After installation, please sign in the first time as administrator.

Then update Midrub from admin like here https://www.youtube.com/watch?v=8UyG_SY9Piw

And enable the app Dashboard because without you will get 404 error.


For more details, please watch the videos below:



Cron Jobs

For scheduling, RSS, emails, bots, etc. in Midrub you need to configure the the cron jobs command. At this moments you can use a file or urls.

You can use these commands:

  • wget -O –spider https://www.midrub.com/cron-job >/dev/null 2>&1

Or you can use a file:

* * * * * wget -O –spider https://www.midrub.com/cron.php >/dev/null 2>&1

You have to replace the url https://www.midrub.com/ with the url you have in the config.php file.

The cron commands above aren't universal. A few of servers will not support them. Better to ask about your server provider.

Common Errors

Here are all common errors. Please use CTRL + F to search errors in this section.


403 denied access

Solution: Please ensure the cookie_domain variable in config.php has a correct value.



404 Not Found

Solution: Please ensure you have uploaded the htaccess. If you have edited it, upload from zip again the htaccess. You don't need to edit htaccess.



500 Internal Server Error

Solution: There are three reasons for this error: wrong file permissions, timeout limit reach and htaccess has wrong characters(please restore it).



Class 'Phar' not found

Solution: Please contact your server provider.



Parse error: syntax error, unexpected '.', expecting ']' in

Solution: Midrub runs on PHP 5.6+. Now your version is older than PHP 5.6.



Fatal error: Class 'InstagramAPI\Instagram' not found in

Solution: By default the private Instagram library missing in Midrub and you have to install it.



Module 'timezonedb' already loaded

Solution: Please contact your server provider.



Call to undefined function mysqli_init()

Solution: Please install the mysqli extension in your php.ini.



You already have an account

Solution: This is not an error. Is just a restriction to prevent abuse. You can limit signup from same ip for a day or forever from admin.



SMTP doesn't work

Solution: Codeigniter uses three ways to send emails: smtp, email and sendmail. By default is sendmail. Please try each from your SMTP configuration at SMTP Protocol.



file_exists(): open_basedir restriction in effect.

Solution: Please contact your server provider.



In aggregated query without GROUP BY, expression #1 of SELECT list contains nonaggregated column

Solution: Go to your phpmyadmin, click on sql and enter the code from here: https://jsfiddle.net/zj9e09hj/



ci_sessions doesn't exist

Solution: Please import the sql code.

Common Questions

Here are all common questions and answers. Please use CTRL + F to search questions in this section.


How to update Midrub?

Answer: Midrub has automatic update system, but a large number of files changed can't be updated automatically. I want to avoid interruption of download due to server configuration limits for someone. For more details please look in the Update's(left side) section.



How to custom the styles for user dashboard?

Answer: Create a file called custom.css in the folder assets/user/styles/css and add there your custom styles. If you will update Midrub manually, please backup the file.



How to enable Emails in Midrub?

Answer: First enabled from Admin -> Settings(Email Marketing). Then enable per plan by adding in the field "Number of sent emails" a number greater than 0. Midrub is rewriting now from scratch and in december will be added an advanced stream not only for social, but for each business needs and ads manager. After in January i will create a new Email composer professional like on MailChimp and the section Emails will be like Posts with history, insights, planner, etc.



Why is soo hard to configure the script?

Answer: Midrub is not hard to be configured. But the social networks requires efforts to be configured. In the Social Networks(left side) tab you can watch videos how to configure them.



How to configure the Gmail SMTP in Midrub?

Answer: Please watch the video https://www.youtube.com/watch?v=hyYb35XnDVI



How to use the proxy in Midrub?

Answer: Midrub supports proxies only for Instagram private library. Other social networks not requires a proxy because are using official api and you can't have problems with the api. The proxy can be added for each user or for all.



Where i can add my timezone?

Answer: Midrub uses the device time and the timezone is not important. Midrub always worked without the timezone, but in this year was added team and i think to add timezone to avoiod scheduling problems for team members which have different location.



Why the database's table ci_sessions is soo big?

Answer: The table ci_sessions is the CodeIgniter's table where are saved all sessions. By default the table should be emptied automatically. It is based on the php options gc_probability and gc_divisor. If the table ci_sessions not empties automatically, contact your server provider.

Updates

From the begin Midrub had an original update system. But the update system is not perfect, because a large number of files can't be updated. The max update limit is about 100 files. A lot of servers are slow and have configuration limits and updates with a large number of files will be interrupted before the end.

I've created at the begin the system update for bugs and i'm using it for this scope more. If you're reporting a bug, i'm not interested to make you wait a new update in a month. I will provide imediatelly a new update with solution from admin(this was my goal from the begin).

In august - september 2019 i will develop a new update solution which will allow you easily to update/install Midrub's base, apps, components, plugins and themes. Updates after will be always possible to get from admin panel.



After manual update is required an automatic update from admin.


How to update Midrub manually?

To update Midrub, you don't need to touch the database, htaccess or vendor folder. Just backup the files application/config/config.php and application/config/database.php because the files contains your configuration.

The backup folders assets/img where are the system images and assets/share where are stored the users files.

Copy from CodeCanyon application and assets folders. Then restore your backup.

I recommend you a professional update. Install Midrub in a test folder too and after each update test anything. If you're satisfied with the new update, copy it in your main location if no, contact me.

Please watch the video below to understand how you can easy update Midrub in 3 minutes:

Then update Midrub from admin like here https://www.youtube.com/watch?v=U6fWdyTW7JQ

If you have translated Midrub please look in the section Changelogs to see which words were added in the last update.

How to translate Midrub

Midrub can be translated in any language you want, but is not simply for more reasons: a lot of files to translate, at each update are added new words and requires a lot of attention.

You have first to create a new language folder here application/language. After you have to copy each files from the folder english and translate them. Each app has its language folders and you have to translate them in the same way.

After that, open the file application/config/config.php and at the variable $config[‘language’] replace the 'english' with the word name of your translation folder.

You have to copy this file https://github.com/benedmunds/CodeIgniter-Standard-Project/blob/master/system/language/english/form_validation_lang.php in your translation folder and translate too.

And this file https://github.com/avenirer/CodeIgniter-single-language-site/blob/master/application/language/romanian/email_lang.php in your translation folder if you can't send more emails.

In this way you can easily translate Midrub in any language you want.

Please remember, each update means new words to translate, just copy them from the original english files in your edited files.

To understand better how Midrub can be translated, please watch the video below:

Plans

The plans page was changed a lot from the version 0.0.7.4. Now it is dynamic and you have to enable plans limits for each enabled app. If the apps aren't enabled, you will not see them in the plans page.

Please read the description at each plan limit. It's important the price to have decimals. It's important for currency code to be correct. It's important to add a correct storage user for each plan.

Source and credit

Midrub uses the next modules/libraries:

Changelogs

After manual update is required an automatic update from admin.

Version 0.0.8.0

For more details please look here: https://www.midrub.com/articles/midrub-0-0-8-0-final



Version 0.0.7.9

For more details please look here: https://www.midrub.com/articles/midrub-0-0-7-9-final and https://www.midrub.com/articles/what-you-should-know-about-midrub-0-0-7-9



Version 0.0.7.8 Beta 2

If you have Facebook Ads Manager, please wait several hours until will be available a new version of the Facebook Ads Manager on CodeCanyon because the Facebook Business library was updated.

New Features:

  • Was changed the Midrub's Core and in the following months the new core will replace all existing Midrub's structure and you will have only application/base and assets/base as Midrub's core. Other folders will be CodeIgniter's folders/files.
  • Midrub's themes allows you to develop your own theme by using html code. In the new public documentation you will have instructions about how to create Midrub's themes.
  • Removed accounts pagination option from user's settings. Now by default is enabled.

Fixes:

  • If a social network is disabled, connected accounts won't be more displayed.

If you have translated Midrub, you can see the last added words here https://drive.google.com/open?id=1w6nrrbTevcoxoMf_PJp1GOMLHmvNtLOS



Version 0.0.7.7 Beta 4

Please remember to update vendor too if you have Facebook Ads Manager, because i've installed the Facebook Business SDK.

New Features:

  • Added delete post button for scheduled RSS’s posts.
  • Added account list for selected Group i the history tab for both manual posts and rss posts.
  • Integrated the media deletion hook in the Posts and now you won’t see more wrong links for deleted images added to a post.
  • Button to delete schedulig RSS posts.
  • Midrub api with permissions requests like on Facebook and token generation. Api features are dynamic.
  • Posts Reports based on selected time, social network and accounts.

Fixes:

  • Fixed responsive bugs.
  • Fixed css errors.
  • Fixed drag and drop media.
  • Mantain aspect ratio for images.

If you have translated Midrub, you can see the last added words here https://drive.google.com/open?id=1w6nrrbTevcoxoMf_PJp1GOMLHmvNtLOS



Version 0.0.7.6

New Features:

  • Storage app – at this time has file manager and categories but image editor comming in the next week.
  • Updated Linkedin api and now is possible to publish in Linkedin profiles. We’ve applied for partnership(made more requests) and as soon will be approved, will be added companies and groups. Old library for Linkedin Companies is still available but i don’t know how long will work.
  • New Admin Settings page – will be released in the next week.
  • Affiliates section based on coupon codes – will be released in the next week.
  • Download Photos from url.
  • Popular Hashtags suggestions – will be in the next week.
  • Option to enable url field – will be in the next week.

If you have translated Midrub, you can see the last added words here https://drive.google.com/open?id=1rFcft6Vtfs5Kdzmywiv0oO0UybGBmEXm



Version 0.0.7.5

For more details please click here http://blog.midrub.com/midrub-0-0-7-5/

If you have apps(other than Posts and Dashboard), please backup them and then restore. If you have other posting classes in application/autopost, please backup them and then restore, if you have a custom payment classes, please backup and then restore. Same for vendor's folders.

  1. New User Settings Page – the user’s Settings page has a new design which will integrate all settings, api’s apps, invoices, plan usage, connected services via api, 2 factor authentication, etc. In the Settings page users will be able to control their payment subscriptions.
  2. Plan Usage – now users will be able to see for what they’re paying and will see what missing.
  3. Settings Invoices – users will see in this section all their invoices and they will be able to print them.
  4. New modern Faq Section – with advanced tickets and categories(this feature will be in this version but in beta 1 is not available).
  5. Hashtags Support – now hashtags are supported by Imgur, Medium and Tumblr. You have to add #hashtag in the post’s message.
  6. Instagram Replies – now you can reply to Instagram comments as reply.
  7. Hooks for Apps – this is an essential feature added for apps. Without it the apps are useless. In the next week i will create a developer documentation where i will explain step by step how to add new features in Midrub.
  8. User Settings for Apps – now you can create a custom class with settings for each Midrub’s app which will be displayed in the user Settings page.
  9. RSS Attached Images – now RSS Feed can read the attached images as files
  10. Security Monitoring System – added a security monitoring system which verifies every minute for non Midrub's files, deletes them and send you notification.
  11. Facebook Graph – Facebook api is not supported more. I've replaced with graph.
  12. Account list pagination – Now if someone has more than 10 social accounts, from admin ca enable pagination.

Fixed bugs:

  1. Improved the Midrub’s menu icon and font.
  2. Pagination for RSS posts history.
  3. Changed colors for social buttons.
  4. Improved the RSS Posts widget from the Dashboard’s app.
  5. Improved Midrub for mobile compatibility

Fixed vulnerabilities:

  1. All user’s options now are restricted. Them will be saved only if are present in my default list or if are present in a Midrub’s application.

If you have translated Midrub, please look here https://drive.google.com/open?id=1SLC-QT8ZZT_hsrrYxrGKukaKc_ARr5FN too see which words were added or removed in this update.

Was updated completely the language file application/language/english/default_tickets_lang.php



Version 0.0.7.4

This update required a lot of time due to really important changes which required a long test period.

  • Plans Page - the page was rewritten from scratch and added support for apps. Now apps will import them plan's limits once will be enabled.
  • Cron Job - i'm going to replace all cron commands url with one single url which will be cron-job. For more details please look in the section Introduction -> Cron Jobs.
  • User Deletion - since the apps are standalone and each app has its table in the database, each app should delete the user data when the user will be deleted. For this reason was added this feature in the apps.
  • My Team widget - the widget My Team from dashboard was disabled for team's member, was blocked the page Plans for team's member and upgrade's links were removed too.
  • RSS Section - was moved in the Posts app. Since more apps will have a RSS section, i've moved RSS section in the Posts's app and was improved. The Faq can be enabled or disabled from Admin Panel -> Apps.
  • Imgur - Imgur can display your photos in a hour to more than 100 people i've added the possibility to publish photos in the gallery and will be indexed by Google. Please remember Imgur could easy ban you for abuse(ban means your photos will be hidden for a period).
  • Inbox's app - is an universal application which allows to add all your inboxes(emails, twitter, google, etc) and automatize them. By default you have Facebook Pages where you can reply to messages manually, see them, see the author, create quick replies and private messages for each page. The Inbox app has a plan limit for bot's messages. Later will be added other limits for plans. I'm sorry but is not possible to use the alternative Facebook classes for this app. I've tried but is not possible.
  • Networks - networks doesn't mean more social networks. I've added a type field for each Networks. The accounts manager in Midrub will be the same but networks will be displayed based on types. For example in the Inbox's app is displayed only Facebook Pages now. In the Ads Manager will be displayed only networks which supports ads. On new Emails app will be displayed the networks which supports smtp. On the Posts app you can see only Networks which has post, rss or insights type.
  • URL Shortener - in the Posts's app was added support for url Shortener. By default will be used Midrub Shortener and you have the option in admin to enable Google Shortener. In near future will be added more options.
  • Posting Error - in the History tab you will see posting errors for each social account. Users will see posting errors for both manual and RSS's posts.
  • Bots name and description - was added now the possibity to add original name for each bot(only admin will see real name). Same for description. You have to edit the Bots classes which are standalone.

If you have translated Midrub, please look here https://drive.google.com/open?id=1rFcft6Vtfs5Kdzmywiv0oO0UybGBmEXm too see which words were added or removed in this update.

Faq System

Midrub has now a new Faq Article section which supports multilanguage articles and categories. The core of the FAQ section was rewritten from scratch and now it looks more professional. From admin you can create a list with categories and subcategories. Than with a click you can select the categories for each Faq article.

The Faq section provides support for any number of languages you have. For each language folder, you will see new inputs and the articles for user will be in the selected language. Same for categories.

Tickets

The Tickets system in Midrub was rewritten from scratch and now users can create new tickets from the Faq section. As admin you can restrict the creation of new tickets per time or disable it. Was removed the attachements support. Now is supported only subject and ticket’s message. But i think in the future will be added other fields.

As admin you can reply to tickets. When someone creates a ticket, the ticket count will be displayed in the admin panel until admin will reply. Same for user, user will see notification for not replied tickets. User can close it or reply.

Admin has now the option to mark as important the tickets.

How to configure Twitter

If you don't have a develop account on Twitter, please contact me by email.

  • Go to https://developer.twitter.com/
  • Click on your username -> Apps
  • Click on the button Create an app
  • Add correct callback https://www.website.com/callback/twitter(url like in your config.php)
  • Add another correct callback https://www.website.com/user/callback/twitter(url like in your config.php)
  • Copy the API key and API secret key. Paste them in Midrub -> Admin -> User -> Networks -> Twitter



Please be careful with Twitter because them don't allows more to publish same tweet in two accounts. Twitter allows to publish up to 4 photos. Short video and links are part of the tweet(280 characters - link).


How to configure Blogger

Blogger is easy to configure. But you have to follow 200% my video below.

  • Go to https://console.developers.google.com/
  • Create a new project.
  • Enable the Blogger's library.
  • Add correct callback https://www.website.com/user/callback/blogger(url like in your config.php)
  • Copy the App key, Client ID and Client secret key and paste in Midrub -> Admin -> User -> Networks -> Blogger



You can use same project for Youtube, Blogger, Google Plus, Google My Business and soon Youtube Insights. Blogger don't allows to publish photos, links or tags. You can publish in wanted category.


How to configure Youtube

Youtube is easy to configure. But you have to follow 200% my video below. First follow the Blogger's configuration video.

  • Go to https://console.developers.google.com/
  • Enable the YouTube Data API v3's library.
  • Add correct callback https://www.website.com/user/callback/youtube(url like in your config.php)
  • Copy the App key, Client ID and Client secret key and paste in Midrub -> Admin -> User -> Networks -> Youtube



In a really short time will be added Youtube comments moderation and insights. Will be required to enabled new two libraries.


How to configure Dailymotion

Dailymotion is very easy to configure.

  • Go to https://www.dailymotion.com/settings/developer
  • Click on the button Create a new API Key
  • Add correct callback https://www.website.com/user/callback/dailymotion(url like in your config.php)
  • Copy the API Key and API Secret and paste in Midrub -> Admin -> User -> Networks -> Dailymotion



Dailymotion hasn't priority like Youtube, but as soon as possible will be added comments moderation and insights.


How to configure Facebook

Facebook option must be configured if you want login/signup via Facebook. BUT DON'T ENABLE IT. Just paste the App ID and Secret. Before this was used to publish on profiles, but from 1 august Facebook requires to convert a profile in a business page.

I didn't removed it from Midrub Facebook still allows to share videos in normal Facebook Profiles. And i'm going to develop an advanced video composer and this option will be used in future optionally.

Correct callback for Facebook login is https://www.website.com/callback/facebook(url like in your config.php)


How to configure Facebook Groups

The option Facebook Groups allows to publish in your Facebook Groups. You can even get comments and basic insights.

Correct callback for Facebook Groups is https://www.website.com/user/callback/facebook_groups(url like in your config.php)

For more details please contact me in a private message and i will help you to configure it. Is not hard, just i have reasons why i'm not providing more details here.

You can publish multiple photos. But no multiple videos because Facebook creates more posts not a video gallery.


How to configure Facebook Pages

The option Facebook Pages allows to publish in your Facebook Pages. You can even get comments, moderate them and advanced insights.

If you want to publish in Facebook Groups like a page, please go to your Facebook Groups Settings and for the option Linked Pages add wanted page.

Correct callback for Facebook Pages is https://www.website.com/user/callback/facebook_pages(url like in your config.php)

For more details please contact me in a private message and i will help you to configure it. Is not hard, just i have reasons why i'm not providing more details here.

You can publish multiple photos. But no multiple videos because Facebook creates more posts not a video gallery.


How to configure Flickr

The option Flickr allows you to publish photos on Flickr. Flickr is still popular but i will add later more features for this social networks.

  • Go to https://www.flickr.com/services/apps/create/apply/ but first login on Flickr.
  • Create an application.
  • Correct callback for Flickr is https://www.website.com/user/callback/flickr(url like in your config.php)
  • Copy the API Key and API Secret and paste in Midrub -> Admin -> User -> Networks -> Flickr


Videos aren't supported. Maybe will be added later.

How to configure Google My Business

The option Google My Business allows to connect all your locations from your Google My Business account. Next you can publish posts with text, links and photos.

  • First of all you have to request access to the Google My Business api here https://docs.google.com/forms/d/e/1FAIpQLSfC_FKSWzbSae_5rOpgwFeIUzXUF1JCQnlsZM_gC1I2UHjA3w/viewform
  • Once approved you will have the library Google My Business API in your Google Console's account for your application(where you have enabled Google Plus, Youtube and Blogger).
  • Correct callback for Google My Business is https://www.website.com/user/callback/google_my_business(url like in your config.php)
  • Copy the App key, Client ID and Client secret key and paste in Midrub -> Admin -> User -> Networks -> Google My Business

Is not soo hard to get the Google My Business api access like how become Google Partner. I know several small companies which has the api access.

How to configure Google Plus

The option Google Plus allows to publish on the Google Plus profiles if you are Google Partner or if you have a G Suite account. From the 1 august 2019 on Google Plus will be possible to publish only with G Suite(for all companies, Google Partner will not be more important since the social account will be private). And i'm sure the api will be improved for G Suite.

  • Go to https://console.developers.google.com/
  • Enable the Google+ Domains API's and Google+ API's(for insights and comments moderation) library.
  • Add correct callback https://www.website.com/user/callback/google_plus(url like in your config.php)
  • Copy the App key, Client ID and Client secret key and paste in Midrub -> Admin -> User -> Networks -> Google Plus
  • Next you have to enable Google Plus in your G Suite account.


If you are Google Partner please contact me by email.

How to configure Imgur

Imgur is the most popular image hosting. And with Midrub you can publish photos and text on Imgur. Really soon you will have the option to select the album where you want to publish.

  • Go to https://api.imgur.com/oauth2/addclient but first login.
  • Create an application.
  • Correct callback for Imgur is https://www.website.com/user/callback/imgur(url like in your config.php)
  • Copy the Client ID and Client secret key and paste in Midrub -> Admin -> User -> Networks -> Imgur


How to configure Instagram

To publish with official on Instagram you have to be a Facebook Marketing Partner or Instagram Partner. I'm going to help the Midrub's users to become a Facebook Marketing Partner in the following months. For this you need official business.

Non officially you can use the library https://github.com/mgp25/Instagram-API but you have to install it yourself.

  1. The private Instagram library now have a different license and i can't distribute it. If you still want to use Instagram, follow this video https://youtu.be/q8i7A9DEavs. If you have installed Midrub, just download it, install the library and upload back. If you just downloaded it from CodeCanyon, unzip, install the library and upload on your server.
  2. To download/install the Instagram Library, install before this software https://getcomposer.org/download/
  3. Then Enable it from Networks > Instagram.

If you have problems with Instagram Checkpoints you can follow these guides:

If you have clients really interested in Instagram, the library author can provide you a stable solution for a monthly subscription.

This library allows to publish posts with photos. If you have a server and want to publish videos, please contact me by email.

How to configure Instagram Api

The option Instagram Api allows to publish photos and text on Instagram by using the Buffer Api. This solution is stable and ideal for personal use. You can connect your Instagram Accounts(which must be business) and connect RSS Feeds and posts will be published without errors.

  1. Go to https://buffer.com/developers/apps/create
  2. Create a new application
  3. Add your Your Callback URL: http://yourwebsite.com/admin/callback/instagram_api
  4. You will receive Client ID and Secret by email
  5. Then go to Midrub -> Admin Panel -> Networks -> Instagram Api
  6. Enter the Client ID and Secret
  7. Enable, after enable if you refresh, you will get an error, don't worry, because the Instagram_api's class is standalone and has it's optional table in the database. Refresh again.
  8. Now, users can submit their Instagram accounts(username and password). Passwords will be encoded in the database.
  9. You can approve or delete submissions. All submissions will be displayed in Midrub -> Admin Panel -> Networks -> Instagram_api
  10. To approve an account, you have to login in the Instagram account and connect it in your Buffer account, then with a click you will be able to approve it for user in Midrub(Better is to become the Facebook Partner, but if you can't you can use Buffer to publish).
  11. You can connect via api even more Buffer accounts.
  12. You can see how Instagram works via Buffer here https://youtu.be/Bz7ZWDk4ND4

How to configure Instagram Insights

The option Instagram Insights is based on the official Facebook api. Instagram Insights allows to get insights and moderate the comments for not. For sure is only the start.

If you want to use this option, please contact me by email.

Correct callback for Instagram Insights is https://www.website.com/user/callback/instagram_insights(url like in your config.php)

How to configure Instagram Stories

The option Instagram Stories is based on the same private library. Please read about above at the Instagram option.

Only images are supported for now.

How to configure Linkedin

You can use for Linkedin Companies and Linkedin same Linkedin's application.

  • Go to https://www.linkedin.com/developer/apps but first login.
  • Create an application.
  • Correct callback for Linkedin is https://www.website.com/user/callback/linkedin(url like in your config.php)
  • Copy the Client ID and Client secret key and paste in Midrub -> Admin -> User -> Networks -> Linkedin


How to configure Linkedin

You can use for Linkedin Companies and Linkedin same Linkedin's application.

  • Correct callback/redirect url for Linkedin Companies is https://www.website.com/user/callback/linkedin_companies(url like in your config.php)
  • Copy the Client ID and Client secret key and paste in Midrub -> Admin -> User -> Networks -> Linkedin Companies


How to configure Linkedin Pages

This way is based on the Buffer Api and is a good option for personal use. This option should be configured in the same way like Instagram Api option.

Callback URL: http://yourwebsite.com/admin/callback/linkedin_pages

How to configure Medium

Medium is easy to configure, but it has restriction on publish. I don't know exactly the interval, but if you publish often than 1 post 10 minutes your posts will be saved as draft on Medium.

  • Go to https://medium.com/me/applications but first login.
  • Create an application.
  • Correct callback for Medium is https://www.website.com/user/callback/medium(url like in your config.php)
  • Copy the Client ID and Client secret key and paste in Midrub -> Admin -> User -> Networks -> Medium


How to configure Odnoklassniki

Midrub allows to publish on the Odnoklassniki's groups and copany pages. The option is available only by request. Please contact me by email.

How to configure Pinterest

The option Pinterest uses official Pinterest's api which can be used by you or your team. Pinterest requires to review applications. If you have a company you can ask for review. If no, you can enable the option from admin to allow to each user to use their Pinterest's applicatios or you can use the alternative ways to publish on Pinterest(which are available in Midrub).

I'm going to add Pinterest ads support in the Midrub's ADS Marketing and will be easy to get their permissions.

  • Go to https://developers.pinterest.com/apps/ but first login.
  • Create an application.
  • Correct callback for Pinterest is https://www.website.com/user/callback/pinterest(url like in your config.php)
  • Copy the App ID and App Secret and paste in Midrub -> Admin -> User -> Networks -> Pinterest
  • You can connect only boards, not accounts.


If you have more accounts and don't want to ask for review, add all accounts in your application -> Collaborators

How to configure Pinterest Boards

The option Pinterest Boards allows to publish text, links and photos on Pinterest Boards. The option Pinterest Boards is based on the library SNAP API(https://www.nextscripts.com/).

If you have the library, please contact me by email.

How to configure Pinterest Bot

The option Pinterest Bot allows to publish text, links and photos on Pinterest Boards. This options works via email and password and is not officially. At this moment it don't has a proxy, if you will have problems i can add support.

The option Pinterest Bot is based on https://github.com/seregazhuk/php-pinterest-bot

How to configure Reddit

Reddit has more restrictions for their api. You can't publish in any subreddit you want. You can't publish same url twice or if was published already by another user. You can't publish one post often than 10 minutes.

The option Reddit requires an url, you can't publish photos.

  1. Go to https://www.reddit.com/prefs/apps and click on the button create another app.... Create your app. Copy the client_id and copy client_secret.
  2. Correct callback for Reddit is https://www.website.com/user/callback/reddit(url like in your config.php)
  3. Then, add your Client ID and Client Secret in Midrub -> Admin -> User -> Networks -> Reddit.


How to configure Telegram Channels and Groups

Midrub allows to publish photos and posts on Telegram Channels and Telegram Groups. You can easily connect all your Telegram Channels and Telegram Groups.

You don’t need to configure Telegram Channels or Telegram Groups from admin. Just enable them. Each user have to create a Telegram application and a Telegram bot. Same Telegram bot and api can be used both Telegram Channels and Telegram Groups.

For more details and videos about Telegram Channels and Groups please contact me by email.

How to configure Tumblr

The option Tumblr allows to publish photos, links and text on Tumblr's blogs. Is easy to configure.

  1. Go to https://www.tumblr.com/oauth/apps but first login.
  2. Click on the button Create application.
  3. Correct callback for Reddit is https://www.website.com/user/callback/tumblr(url like in your config.php)
  4. Then, add your OAuth consumer key and OAuth consumer secret in Midrub -> Admin -> User -> Networks -> Tumblr.

How to configure Vimeo

  • Go to https://developer.vimeo.com/apps but first login.
  • Create an application.
  • Correct callback for Vimeo is https://www.website.com/user/callback/vimeo(url like in your config.php)
  • Copy the Client ID and Client secret and paste in Midrub -> Admin -> User -> Networks -> Vimeo
  • Vimeo has changed recently their api, and in a week i will create even video tutorials about how to configure it.

How to configure Vk

  • Go to https://vk.com/apps?act=manage but first login.
  • Create an application(Platform must be Standalone Application).
  • In the Vk a callback is not required.

How to configure Wordpress

  • Go to https://developer.wordpress.com/apps/ but first login.
  • Create an application.
  • Correct callback for Wordpress is https://www.website.com/user/callback/wordpress(url like in your config.php)
  • Then, add your Client ID and Client Secret in Midrub -> Admin -> User -> Networks -> Wordpress.


How to configure Wordpress Platform

Midrub allows to publish in any website created in Wordpress. For this you need the Wordpress's plugin. If you want it, please contact me by email.

How to configure Xing

The option Xing allows to publish text and links on Xing. The option Xing is based on the library SNAP API(https://www.nextscripts.com/).

If you have the library, please contact me by email.

Posts Introduction

The posts section is an application which you can find in application/apps/collection. The Posts app has 4 tabs but in max 2 weeks will be added another one, RSS.This tabs can be enabled or disabled from admin.

The Posts app has options in for admin in Admin -> Apps -> Posts and for user in Settings but soon each app will have a tab with its settings added automatically.

The Posts app has two widgets which are displayed in the user dashboard. In the following updates you will be able to enable or disable widgets.

Composer Tab

The Composer Tab has 3 sections:

  • Accounts List/Groups List - are displayed all accounts or groups and user can search/select accounts/groups. In the same are user will see the accounts manager button. By clicking on the button user will be able to manage accounts and groups. You can read more about the accounts manager here http://blog.midrub.com/midrub-social-accounts-manager/
  • Posts Composer - contains the post composer and multimedia gallery. In section are displayed the buttons to display title, upload new files and the popup with last posts scheduled/published/drafted.
  • Preview - contains the post preview where are displayed the post content and selected accounts or groups. From there user can unselect selected accounts.

Scheduled Tab

The scheduled tab has a planner where are displayed all your published/scheduled posts. The planner displays the posts with an image cover or video cover if has. If has more images will be displayed only one. User can see even up to 7 social networks icons where will be published or was published a post.

In the planer you can click on the next date fields and quick schedule posts. The quick scheduler is more limited and don't allows to select categories, upload files or connect new accounts/groups.

Insights Tab

The Insights tab displays insights for published posts and you can moderate comments. Insights tab displays even insights for connected accounts.

At this moments Insights are supported by default for:

  • Facebook Pages
  • Facebook Groups
  • Instagram Business Accounts
  • Linkedin Companies

Above were listed the default insights classes. You can custom these standalone classes which are in application/apps/collection/posts/insights

After 12 november will be available Insights for Youtube, Twitter and Google Plus. But these classes will be available by request.

History Tab

The History tab display all published, scheduled or drafted posts. For each post you can see where was published. If were errors on publishing, time when was published and post's content. From the History tab is possible to delete the posts.

Inbox Introduction

The Inbox's app was created more for automatizations. This app has a bot in each network and will reply to comments, delete non wanted comments, reply to chat messages, reply to review, reply to emails, etc.

The app is stable and you can be sure it will help your potential/existing clients to get instantly replies to their questions.

You can add easy any network you want without lost the data after Midrub's update. I will not change the actual core.

The Inbox's app is provided like a gift by request and instructions for configuration too. You need to request one permission to make it work.

Facebook Pages

I don't know if you will prefer this app for Facebook Pages Inbox instead the new Midrub's Stream, but at least you can create quick replies for each page and the bot will reply to questions in the Facebook Page's chat. Another feature is private messages. You can create a list with private messages which will be sent to people which comment your Facebook Page's posts.

At this moment the Inbox app supports exact phrases and keywords. Exact phrases means if someone ask exact what you've written in a bot's message, the bot will reply. I think you will prefer the keywords where each keyword should be in a message. Reply is only plan text.

Analytics tab allows to see by time who contacted you and what bot replied.

How to add a new network

I will explain how i will add Twitter, but in the same way you can add any network you want. Please follow exactly my instructions.

First in assets/apps/inbox/networks i will create a new folder twitter. Inside i will create two folders: js and styles. In the folder js i will create the file main.js where i will add all js code for Twitter. My ajax calls will have the url url + 'user/app-ajax/inbox' and parameters action(name of the php's method) and network will be twitter to say where is located the wanted php method. In the folder styles i will create the folder styles and inside the file styles.css with network's styles.

Then inside the folder application/apps/collection/inbox/networks i will create another folder called twitter. After, in the folder twitter i will create files:

  • main.php - is the first called class when a network is loaded. You have to follow the interface MidrubApps\Collection\Inbox\Interfaces\Networks The method network_info should return an array with keys(please look in my Facebook Pages example).
  • ajax.php - is the file called by ajax. You have to add there all your methods.
  • bot.php - is the file called by social networks. There you have to write all bot's commands.
  • footer.php - is the file which will contain all your modals. You can see two modals in the Facebook Pages like example.

The bot's url will be https://www.midrub.com/social/user/bots/inbox?action=load_bots&bot=twitter

To connect accounts in the Inbox's app, the autopost's class should have the type "inbox".

Storage App

The default Storage app was created to allow you to manage more easy your upload media files. Also, this app was created to allow photo edition and files categorization(Soon your will se how categories can be used).

At this time the app is basic, but will improved soon with new features.

How to configure PayPal

PayPal can be used for both recurring payments and monthly manual payments.

Go to https://www.paypal.com/cgi-bin/customerprofileweb?cmd=_profile-website-payments.

You need a Business PayPal account, but don’t worry, you don’t need to pay nothing. For each transaction PayPal will take 0.50$. If you have already a Business PayPal account, sign in and click on the Profile -> Profile and settings -> My selling tools -> Website preferences(Update) -> Copy the PayPal Identity Token and add in Midrub.

Why you need PayPal Identity Token in Midrub? Someone can redirect manually a link to your website and upgrade the plan without paying. But with PayPal Identity Token we can verify the redirected token if is valid, already exists in your database or the payment value is exact for the choosen plan.

For recurring payments please contact me by email and i will provide more instructions.

How to configure 2Checkout

2Checkout can be used for monthly manual payments.

2Checkout is available in almost any country and people can pay by using their credit card.

If you want to use 2Checkout, you need first to create a Merchant Account:

https://www.2checkout.com/ecommerce-glossary/merchant-account

After this, sign in and in Account -> Site Management add for Approved URL this:

http://yourdomain.com/user/success-payment

Copy account number and secret word and add in Admin -> Settings -> Payments. Please watch the video below for more details:

Don't use a Sandbox account for 2Checkout in Midrub because is not supported.

How to configure Stripe

Stripe can be used for monthly manual payments.

  1. Go to https://stripe.com/
  2. Sign In and go to https://dashboard.stripe.com/account/apikeys
  3. Copy Live Secret Key.
  4. Go to Midrub.
  5. Sign In as Admin, click on Settings->Payments.
  6. And paste the copied Live Secret Key in the field Stripe Secret Key(Press SPACE and BACKSPACE if will not be saved)

How to add a new payment gateway

The payment gateways in Midrub are standalone files. You can add a new payment gateways by adding a class in application/payments(you have to follow the interface application/interfaces/Payments.php).

How to create a new payment class:

  • process - is the method which process the request sent after user click on the button Pay Now
  • save - is the method which process the response when user is redirected to http://yourdomain.com/user/success-payment
  • info - contains the class's info
  • cancel - if user has a subscription and changes the plan, we should delete the existing subscription first. So add the code in the method.

Midrub's Api

From the version 0.0.7.7 Midrub has it's api. For each Midrub's app you can create custom endpoints and read, modify or create new content in Midrub from any device or website.

The api is based on Oauth 2 and users can generate tokens based on permissions and use the tokens to access the api's endpoints. Tokens can be generated by redirect/login or via username and password from a mobile app.

All apps can be manager from the Admin panel and you can decide which permissions will have each api's application. In the near future users will be able to ask for permissions and manage their applications from their accounts.

How to configure Dropbox

  • Dropbox can be enabled from Admin -> Apps -> Posts -> Multimedia -> Enable the DropBox multimedia picker
  • You need even the DropBox App Key.
  • Go here https://www.dropbox.com/developers/apps
  • Create a new application
  • In the field Chooser/Saver please add your domain.

How to configure PixaBay

  • PixaBay can be enabled from Admin -> Apps -> Posts -> Multimedia -> Enable PixaBay
  • You need even the Pixabay API key
  • Go here https://pixabay.com/en/service/about/api/
  • Signup and you will see here https://pixabay.com/api/docs/ the API key

How to add a new social login option

At the moment there are two social networks through which you could login/sign up. But you can add more social networks for login/sign up.

To add a new social network for, it’s necessary to add a new class in application/login/ folder, which must have Login interface from application/interfaces/ folder.

The callback url for login for al social networks is https://www.yourwebsite.com/callback/nameofnetwork

How to configure Midrub Shortener

By default Midrub Shortener is enabled. You can enable Google Shortener from Admin -> Settings and Midrub Shortener will be disabled.

How to configure Google Shortener

If you have already created a Google Application for Blogger or Youtube you can use it for Google Shortener too.

Just enable the library URL Shortener API in your Google Console.

After open the file application/config/config.php and add your Api Key and domain in $config['google_api_key'] = ''; $config['domain'] = '';

Description of the security methods to prevent attacks such as: SQL injection, XSS, Hijacking sessions and others.

Security Monitoring System

Midrub has a security monitoring system which verifies every minute(depends on how often runs your cron job) and if detects non Midrub's php files, deletes them and sends you a notification via email.

SQL injection

We have used only query bidings and as you can read here https://www.codeigniter.com/userguide3/database/queries.html, the values are automatically escaped, producing safer queries.

XSS Filtering

We have enabled XSS protection by added $config['global_xss_filtering'] = TRUE; in the application/config/config.php file.

You can read more here https://www.codeigniter.com/user_guide/libraries/security.html

CSRF Filtering

We have enabled CSRF protection by added $config['csrf_protection'] = TRUE; in the application/config/config.php file. Also, we have used the form helper for each forms.

You can read more here https://www.codeigniter.com/user_guide/libraries/security.html

Session hijacking

We added $config['sess_use_database'] = TRUE; in the application/config/config.php file and all sessions are saved in the database.

Why there is NO captcha for login and sign up forms?

Because after 5 failed attempts to login, the user is blocked for one hour. Once registered/signed up, the ip address is stored and the user will not be able to register/sign up again for 24 hours. Also you can choose, that it will not be possible to register/sign up ever, from the same ip address. This way, we simplified the login and sign up steps, without being necessary to complete other fields.

All uploaded images and videos in the user panel will have only the read permissions. Midrub allows to run only it's files which are included in the htaccess. The htaccess from the folder assets will prevent the execution of php files in all subfolders.

For vulnerable folders i've disabled via Htaccess the php files execution but this solution won't work o Nginx.

Please, remember, i'm only a web developer and any big/middle companies have security engineers which only ensure the security for the company's projects. If you have ideas how to improve the security for Midrub, please let me know, i will check to add them.