Has something happend yet? This is a small script to set up one of those Twitter bot accounts which automatically tweet answers to important questions like:
- Has invisibility been invented yet?
- Has [sports team] won/lose yet?
- Has [shady polititian] resigned yet?
- Has the world ended yet?
Example twitter bot using this repository:
- Twitter API Key
- PHP
- Composer
- Cronjob
The PHP script should be executed with a cronjob. It then reads a JSON file consisting of default messages and messages for special dates. One message is selected and then pushed to a given Twitter account.
It is possible set up multiple accounts.
Set up the script
- Use composer to install the script and all dependencies
composer create-project pixelbrackets/has_yet
- Copy the configuration example file and
rename it to
configuration.json
- The example configuration should be self-explaining, you may define custom messages for special days and/or one or more default messages
- A status message may consist of a text and an image
- The optional image may be a local filename or a URL (http/https supported)
- Protect the whole folder from public access (eg. with a htaccess file or move the directory outside of the document root)!
Set up a Twitter account
- Register a Twitter account (that was obvious, wasn't it?)
- Register an app for this account
- The advantage of this move is that you won't need to set up an OAuth Login, since Twitter offers to generate an Access Token for the own account
- Go to https://apps.twitter.com/ to create/register the Twitter App
- Click “Create New App” Button
- Create an application (Name, Description, Website etc.)
- Change “Permissions” to “Read & Write”
- Generate an Access Token on the “Keys and Access Tokens” tab
- Copy API Key, API Secret, Access Token, Access Token Secret into the configuration file
Set up a cronjob
- Set up a cronjob which points to the
cron.php
file- eg.
0 10 * * * php /path/to/cron.php
- You may choose any interval, but be aware that Twitter has a mechanism to detect duplicate tweets (https://twittercommunity.com/t/duplicate-tweets/13264). Consider this if you want to frequently post the same status message. It appears that a 24 hour time range is sufficient.
- eg.
- If you want to set up multiple accounts or use varying messages, then rename
the JSON configuration file and pass the filename as argument
- eg.
johndoe.json
andphp /path/to/cron.php johndoe
- eg.
https://github.com/pixelbrackets/has_yet/
Read online (HTML) https://github.com/pixelbrackets/has_yet/blob/master/README.md
GNU General Public License version 2 or later
The GNU General Public License can be found at http://www.gnu.org/copyleft/gpl.html.
Dan Untenzu ([email protected] / @pixelbrackets)
See ./CHANGELOG.md
This script is Open Source, so please use, patch, extend or fork it.