TwiFarm 2.2 мануал, инструкция по использованию user guide

  TwiFarm v2.5 User Guide  



Перед использованием можно прикупить аккаунтов Twitter

Магазин аккаунтов: твиттер, twitter, gmail, vkontakte, odnoklassniki, mamba


Видео обзор



The Archive Content, uploading details, Decompression and Installation

So, you have downloaded the archive file containing the script from the IRP-panel and unpack it. Here is list of files and folders.


Starting from version 2.5, the script moved to CMF CodeIgniter and now works with MySQL, which made it more stable in operation, as well as convenient to use and update from version to version.

You can see how everything is arranged, but, actually, there is nothing interesting in the structure - all actions perfomed through web interface and you do not have to look at the FTP.

To install TwiFarm we need to upload files at hosting. It is strongly recommended to upload entire archive file and unpack it on server directly, otherwise you can meet some problems (the files get broken during FTP session; encoding gets broken, etc.).

Now I'll show you how to install your software using the ISP manager panel

Note: your hosting provider can use another hosting control panel, but 99% of panels has the same possibilities. If you get stuck with installation - contact your hosting provider for help.



  • Upload the archive file using the "Upload" button in the upper right corner
  • Remove the unnecessary index.html [1] (it is created automatically when you create a domain through ISP). To do it you need to click on this line and then select "Delete" on the top button panel
  • Select the line with TwiFarm script archive file (your file may have some other name), and then click on the button "Extract" on the top panel [2]


After all these steps we will see something like this


  • Now the archive file with script can be removed [1].

Now let's check correct permissions to files and folders before proceeding.

  • File "database.php" (/application/config/database.php), must have "777" permissions.(If the permissions differents from "777" - select the "database.php" file, and then click "Attribute" in the top panel [1]. and set it to "777"
  • If your php is running as cgi, you don't need to set any file permissions.

Now it is time to create a database for our script, here is the steps to do it with ISP manager:

  • Go to the "Databases" menu item (at bottom left)
  • Click the button "Create" [1] (the top menu)
  • Fill in the required fields as it is shown at the picture (our data - database name, password, etc. is only for example, you can use any you like)
  • .
  • Store this data (database name, database user name and database user password) in any place, we'll need them later
  • Click "OK"

Installing the script

Run your browser and type domain name, where you uploaded the script. You'll see the following picture:

Click the link "Please check your server before installing" in the blue oval to check your hosting modules and PHP version, which is critical to run the script correctly. You'll see the following picture:

If you see, some red entries with [FAIL] instead of [OK] - contact your system administrator / hosting technical support and ask to install the missing modules.

  • Please note. Our tech support does not deal with server management, will not install the missing modules, will not configure the server or perform other similar jobs.

If you have got only green [OK] entries, return to the home page of the domain and continue with installation. You'll need to enter the data of previously created database into appropriate fields and click "Install."

If all data is correct, you'll be redirected to login page. But before proceeding we need to setup API keys for Twitter and Bitly

Let's deal with it.


Getting the data and configuring Farm to work with the Twitter API and the Bitly API

  • Attention! This operation (getting API keys from with Dev.Twitter and Bitly) required only once per one script installation. It also means that you'll need to setup API keys every time when you installing script on different domain.

To use Twitter API we need to create an application in Twiiter. To do this, go here and authorize with any Twitter account.


After login we will see this page

Click the button "Create a new application" and on the next page and fill in the required fields like this:

Specify any name [1] for your application, write a description [2], and URL [3] of our Twitter Farm, leave the field [4] blank, confirm that you agree with the rules [5], enter the captcha code [6] and click the blue button.

If you're succeded - you'll redirected to Twitter application page, with see six tabs: Details, Settings, OAuth tool, @Anywhere domains, Reset keys, Delete. Hit the “Settings” [1] tab and change the following settings as it shown at the picture (change Access from “Read Only” to “Read and Write” [2], and then put a check mark on the item “Allow this application to be used to Sign in with Twitter” [3] and finally click the blue button at the bottom [4]).

Next, hit the "Details" which contains the necessary parameters - named “Consumer key” [2] and “Consumer secret” [3]. Store it anywhere, for example - in a text editor.


  • Attention! Make sure that the “Access Level ‒ Read and Write” is specified as it shown at the picture![1]


Now it is time to get similar API keys from URL shortener service -

We need to create an account at the service and get the Bitly login and the Bitly key similar to Twitter.

Click here to open login page


There are 2 options,we register a new account in or (recommended) log in using Twitter account, which was used while creating application in Twitter earlier.

Let's choose second option, click on the "Sign up with Twitter", if you have not logged in Twitter - the following window will open:



Enter data from Twitter account and click "Authorize". You'll see this page



Enter any e-mail address [1] (for example "[email protected]" - it'll be not checked), click "Create new Bitly account" [2],and enter user area.

Then click your username in the upper right corner, and click “Settings” in drop-down menu. On the Settings page select the tab ADVANCED.



At the bottom of the page you'll find the link “Show legacy API key” [2], click it and get another API data for Farm, Login and API key (highlighted in red in the image). Write them down near previously saved data from your Twitter application.


Now it is time to finish with Twifarm installation

Open http://domainwhereyouinstalledfarm in your browser and fill in data

After login you'll see the first page of TwiFarm ‒ "Home".

This is an information page which displays a brief information: log of recent events, accounts at work, perfomed actions and their success rate.

But now to complete installation, we need to navigate to "Settings", so go to this tab, and enter the required data (which you previously stored) into the fields marked "Twitter API Settings" and click "Save" [2] and then do the same procedure with the API data to Bitly [3]


Setup Cron jobs

The software utility cron is a time-based job scheduler in Unix-like computer operating systems. People who set up and maintain software environments use cron to schedule jobs (commands or shell scripts) to run periodically at fixed times, dates, or intervals. It typically automates system maintenance or administration and in our case it is used to execute some actions with twitter.

At the bottom of the "Settings" page you will see "CRON token" with 3 links, just save it in the text editor.


Let's setup Cron in ISP manager panel.

Login in panel and go to the section "Scheduler (Cron)"


We will need to create 3 tasks:

  • GO task tweets, retweets and performs all sorts of actions. Run every 10-15 minutes; with 3-10 performed actions (see tab “Settings” -> "Action Settings").

    /usr/bin/wget-O/dev/null-q http://[TwiFarm_domain]/cron/go?token=[token]

  • PARSE TWEETS task collects data for the actions, parses tweets; run every 15-30 minutes.

    /usr/bin/wget-O/dev/null-q http://[TwiFarm_domain]/cron/parse/tweets?token=[token]

  • PARSE TRANDS task parses trands; run it 1 or 2 times per twenty-four hours.

    /usr/bin/wget-O/dev/null-q http://[TwiFarm_domain]/cron/parse/trands?token=[token]

  • Syntax "/usr/bin/wget-O/dev/null-q" is only as an example, your server Cron utility may have other syntax. Contact your hosting provider for details how to run Cron jobs.


After this, all external actions with Twifarm is done. Now it is time to load data into the Twifarm directly and configure it to work.


"Home" tab review

As we have mentioned above, it is an information page which displays a brief log of recent events, and system information: Twitter accounts loaded in Twifarm [1], how many actions have been made [2], percent of the successfull actions [4]. You also can view 10, 50, 100, 250, 500, and 1000 results per page [5] and navigate to detailed reports ("Actions" tab) by clicking the button "More" [6].

You can also manually start the action executions by clicking "Manual launch" button [3] (analog of the Cron link GO start).

The home page displays some additional important information ‒ the accounts that "Needs attention" [7]. It is an accounts that exceeded error limits (which is configured at “Settings” section) and doesn't used anymore by Twifarm (have "Errors" status).

There are variety of errors which can raise during work - non-critical (exceeding the limit of the characters in tweets, try to follow suspended account etc) and critical (account is suspended, exceeding API limits etc). It's recommended to review your account, anyway you can bring them back to work individually by clicking on the red button "Stopped" [2], or in block by highlighting the accounts using checkboxes and clicking "ON" [1]

"Accounts" tab review

Accounts can be added one at a time manually [1] using the button "Add", or they can be imported from text file [2] (select the text file from your computer by clicking "Browse", then click "Import") and exported [2], the button "Export".

Import format: [username][space][password], 1 line=1 pair of username/password without separators.

  • Please note. [username] means a twiiter login, if you use e-mail as [username], in some cases the software will not work correctly!
  • It is not recommend adding more than 100-300 account per one import operation, if you have more than 300 account - you'll better split it in several files and than import.

As you can see from the picture, accounts can have the following statuses "Active" и "Inactive"[10] as well as additional technical status, which we discussed earlier ‒ "Errors".

The status "Active" is assigned by the user or automatically after the creation/import of the accounts, the status "Inactive" may be assigned by the user, the status "Stopped" is assigned by the system, in the case of the exceeding error limit (specified in the tab "Settings")

Only Active accounts are executing actions (tweets, retweets, following, unfollowing) and the Inactive and Errors are not.

Account data represented in table:

Аccount login ("User") [3], tweets[4] and retweets [5] quantity, how many people it has followed [6] and how many followers it has [7], errors count [8], and account status [9].

The columns can be sorted, and you can also search account by username (or part of username) [13].

You can enable, disable, check index (Yandex and Google), reset the statistics and delete statistics any of selected account (including group selection) using the appropriate buttons [11].

If your account is indexed by Google or Yandex, the corresponding icon will appear next to it [12] with the number of the pages in the index. If the icon does not appear - your account is not indexed. Index is checking in 3 cases:

  • Account is authorizing in the application (receiving tokens)
  • Account executing actions (if indexation data is empty)
  • Index check activated manually [11]

  • Note! Only ACTIVE accounts [10] exetuning posting, twitting, retwitting and other actions (via CRON or use Manual Launch), all other account are not.


"Content" tab review


Almost each Twifarm function (such as twitting, following, unfollowing, etc.) uses the content from this page.

Starting with version 2.5, TwiFarm correctly handles such errors on receiving errors of lack of content. It proceeds with the following action, and the action for which there is no content will be disabled automatically, thus preventing further errors.

[1]  "Links" subtab is used during twitting operation - accounts will tweet links and text from this subtab. Subtab format:

url [space] keyword or phrase, without separation symbols. Example: keyword or phrase1 keyword or phrase2


In SED 3.5.х you can get the links in this format from the admin area. Select the current domain Utils - 1. Add keywords - add - the link "Download archive:" will appear at the bottom.

[2]"Keywords" subtab is used by any action that used keywords as parameter:"Tweet text from keyword search", "Retweet status from keyword search", "Follow by key". Keywords should be added in following format: one phrase per line without separation symbols. As you can see the subtab window is divided into two areas: added keywords are located at the left side and your keywords based content from twitter at the right side (it will appear later after cron-based parsing operation).

[3]"Text strings". subtab is very similar to "Links" subtab. This is the text, that will be twitted in "twitting" operation, so you can put here any text strings up to 140 characters length (according to Twitter restrictions) one per line.

[4]  "Persons" subtab contains list of twitter accounts which are used to follow it and retweet their tweets. Subtab format: twitter account usernames (without "@" symbol)one per line. Example





It is recommended to put autofollowers here.

[5]  The "RSS feeds" subtab is used by "Tweet RSS" action and tweets newest item (text+link) from random RSS feed. Format: one RSS feed per line. .

[6]  subtab "Trands". is used by "Tweet trands" action. Twifarm parses trands from twitter by this keywords and than adds it to tweets. Trands are taken in all languages, duplicates are removed, also you can add trands manually.

All trands are "temporary", it does not make sense to keep them for a long time. Trands parsed by the Cron link PARSE TRANDS - it is recommended to do 1-2 times per day.)

[7] - tag "Status ID". It is used by the setting "Retweet by number". Number is the part in URL - here

You can add these numbers manually (one number per line), or add from the "Reports" subtab using dark pluses next to tweets [1].

Click on a plus adds the number of the tweet to "Content -> Numbers". This status numbers is used by "Retweet status by ID" operation (a random number is selected from the list, and then tweet relevant to this number is retweeted).



"Settings" tab review

Let's expand all the tabs

All actions are performed if corresponding checkboxes are checked

[1] - tab “Tweeting". This group of settings is responsible for everything that regards tweeting functions.

  • [1.1] - "Tweet links". Random string from "Content" -> "Links" is tweeted by random account.
  • [1.1.1] - "Delete after tweeting. Remove tweeted string from "Content" -> "Links" after tweeting. (All other checkboxes starting with "Delete... " has the same functions for according content).
  • [1.2] - "Tweet text strings". Random string from "Content" -> "Text Strings" is tweeted by random account.
  • [1.3] - "Tweet texts from keyword search". Random string from "Content" -> "Keywords" is used as search term in Twitter. First 100 founded tweets are saved to cache, then a random tweet is selected from cache and tweeted by random account.
  • [1.4] - "Tweet trands". A random popular # hash tag from the tab "Content" -> "Trands" is added to the tweeted "Text Strings" and "Text Strings".

    • Attention! As the setting "tweet trands" is applied to "Content -> Links" and "Content -> Text Strings", it is important that this content must be present.
  • [1.5] - "Tweet from RSS". Most recent item from a random RSS feeds (from "Content" -> "RSS") is tweeted by active account.

[2] - tab "Retweeting". This group of settings is responsible for everything that regards retweeting functions.

  • [2.1] - "Retweet status by ID". A random active account retweets the tweet corresponding to a random number from the tab "Content" -> "Status ID".
  • [2.2] - "Retweet accounts". Two active accounts of TwiFarm are randomly selected, then the first account retweets random tweet (from the 10 recent tweets) from the second account.
  • [2.3] - "Retweet status from keyword search". Keywords from "Content" -> "Keywords" is used a source for Twitter search, then the first 100 tweets are saved to the cache, and last a random tweet from cache is retweeted by random account.
  • [2.4] -"Retweet persons". A random person from "Content" -> "Persons" is selected, a then a random tweet from this person is retweeted by random active account.

[3] - tab "Following". This group of settings is responsible for everything that regards following functions.

  • [3.1] - "Follow accounts". Two active accounts are randomly selected, then the first following the second one.
  • [3.2] - "Follow by key". Keywords from "Content" -> "Keywords" is used a source for Twitter search, then the first 100 tweets are saved to the cache. The author of a random tweet is selected and followed by random account.
  • [3.3] - "Follow persons". Random twitter account from the "Content" -> "Persons" is followed by active account.
  • Note! The setting "Follow account", works best with autofollowers. So it is recommended to add autofollowers to "Content" -> "Persons"

 [4] - - Option "Unfollowing” unfollow early followed twitter account if it is not follow your account during 5 days. Thus accounts of the Farm never unfollow each other;

Unfollowing is the most intense action, it generates 4 requests to the Twitter API per action.

[5] -"Action settings." The number of executed actions (which you configured at [1] [2] [3] [4]) per single Cron job go?token. For example if there is a 3, then Farm executes 3 actions in a single Cron job.

  • Attention! It is recommended to setup not more than 5-10 actions per a single Cron job (which runs every 10-15 minutes) to avoid account bans! Also frequently executed Cron jobs with lots of actions leads to high server (hosting) load, and increases script execution time. So you may add recources to your server or hosting.

In the drop-down list you can give each of the 24 time periods its own number of actions, that makes you accounts be "humans" and avoid bans! For example, from 00.00 to 7.00 your accounts will "sleep", and from 7.00 to 18.00 - high activity, from 18.00 - 00.00 medium activity.

Current time period is highlighting with black.

[6] - "Account error limit". Every account has own "unsuccessful actions" counter, when counter reached this error limit, this account gets disabled with "Error" status. Typically, there are suspended and non-valid accounts, anyway, you can manually review it and make a decisition what to do with them.

It is recommended to set up more then 10-20 number of errors, otherwise you will have to monitor and restore accounts from "Stopped" status to "Active" very often.

[7] - "CRON token". A group of 3 necessary links to execute various actions (already reviewed above - "launching Cron jobs").

[8] - "IP interface". If you VPS / Dedicated server has more than 1 IP - you can specify it here, it is makes Farms less suspicious. Specify one address for 1 farm.

[9], [10] - "Twitter API Settings" and "Bitly API Settings". Here we define the service access settings for the Twitter API and Bitly API services (already reviewed above)

[9], [10] - "Yandex XML Settings". Accesses from Yandex XML service to avoid bans? during checking account index in Yandex.


"Stats" tab review

This tab contains extended statistics for executed actions. Following filters are supported : date ranges [1], accounts usernames [2], keywords in actions [3], types of actions [4] (tweet, retweet, follow, etc.), results per page [5]. Successfull actions are marked with green circle [6] unsuccessfull - with yellow triangle [6] , clicking this triangle will display errors returned by Twitter API.

You can also add data to the tab "Content" -> "Status ID" by clicking on the plus sign [7], thus you add this tweet to the list of tweets which is used for retweeting.

There is a navigation menu at the very bottom [10], you can move through the logs by clicking Prev|Next links, or select the desired page from the drop-down list.

Definition of symbols[8]

  1. - tweet text from the tab "Content"->"Text strings", "RSS feeds", "Keywords"
  2. - tweet link from the tab "Content"->"Links", it is also shown in the action "tweet trands"
  3. - retweet
  4. - follow
  5. - unfollow
  6. - Button to add the tweet number to the tab "Content" -> "Status ID"
  7. - Action successful
  8. - Action unsuccessful


How to diagnose unsuccessful actions?

Every unsuccessful action has an error returned by Twitter API, you can see this error by clicking the yellow triangle , that action error log to be shown [9].

  • Attention! Errors can be caused by many factors mostly by wrong content and account data, for example if you have enabled the option "Follow persons" in the settings with empty "Content" -> "Persons." list there will be an error.
  • So double check the farm settings and content data before writing to support!


This is all. Long live your Farms.

Аккаунты, горячие аккаунты, кому аккаунты?..

Всем спасибо, с вами был SafariLive, до новых встреч!