MM-Tweeter
Jump to navigation
Jump to search
Conditional Auto Tweeter written in PHP
- Using OAuth Library by Matt Harris: https://github.com/themattharris/tmhOAuth
- Running via CLI PHP
- Design an application to use Matt Harris' library as a function to auto tweet events based on existing conditions
Usage
- Build a HTTP request with the following variables
- source (Your Source - predetermined)
- secret (Your secret - predetermined)
- post_date (When the tweet should be posted + 5 minutes)
- content (this is what you want tweeted)
- Example:
http://midsouthmakers.org/mm-tweeter/?source=samplesource&secret=samplesecret&post_date=2012-05-07%2011:46:10&content=Sample Tweet
- $_POST or $_GET methods should work in the same manner.
- Execute the request
- Currently debugging information is turned on.
- Please report any errors.
Current Functionality
- Using MidsouthMakersDev Twitter account
- Able to be run from the command line to post static tweets.
- Able to be run from a url to post static tweets.
- Checks pending table and checks if their post date < current time
To Be Done
Need to handle adding to pending tableNeed to handle adding to historyNeed to handle Remove from pending- Cron local system to test for pending tweets
- Testing
- Need to provide fallback if no $post_date supplied.
- Need to ensure response code making it back to user
- Perhaps ability for source to query their tweets based on history/pending?
Goals
- Take input from multiple sources
- Reliably validate source of all incoming data
- Use access list or secret hash to prevent abuse
Database Schema
- Pending Table
CREATE TABLE IF NOT EXISTS `pending` ( `id` int(6) NOT NULL AUTO_INCREMENT, `content` varchar(160) NOT NULL, `post_date` datetime NOT NULL, `added` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, `source` varchar(255) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
- History Table
CREATE TABLE IF NOT EXISTS `history` ( `id` int(6) NOT NULL AUTO_INCREMENT, `content` varchar(160) NOT NULL, `post_date` date NOT NULL, `added` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, `source` varchar(255) NOT NULL, `response_code` int(4) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 ;
- Secrets Table
CREATE TABLE IF NOT EXISTS `secrets` ( `id` int(11) NOT NULL AUTO_INCREMENT, `source` varchar(255) NOT NULL, `secret` varchar(255) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 ;