7 Dec


Wild Goose just ran a tweet-a-thon last night and I hear it was successful. Other users are considering tweet-a-thons for holiday fundraisers as well.

Hope to see some good twitter donation campaigns coming up this holiday season.

7 Dec

Had to implement better anti-spam

Unfortunately the Twitter account sign up bot of some sort that continues to sign up for tweetdonate.org accounts wasn’t stopped by my Javascript changes.

There’s now a simple math problem on the front page. My apologies to all of the actual people that now have to fill in one more box!

1 Dec

Twitter Donations

If anyone’s looking to handle donations and comparing the services that are out there, I’d like to offer up a couple points that I think makes tweetdonate unique:

  1. We don’t take a cut. TweetDonate is free to use.
  2. Donations don’t pass through TweetDonate. Donors click the link in Twitter and go directly to the PayPal pay page.
  3. It’s easy. I don’t think it’s possible to have fewer steps than TweetDonate uses to get you started.
  4. Donations can happen first. People can donate on Twitter to any user, then that user is prompted to sign up to complete the “money circuit”.
1 Dec

Twitter Tweet-a-Thons

Wild Goose Creative is the first organization to use tweetdonate for a tweet-a-thon but I’ve had an inquiry from a company in Toronto looking to do the same thing for their Christmas party.

Looks like tweet-a-thons for Christmas parties are going to be popular in December. I’m looking forward to helping out as many people as possible with their twitter donations!

1 Dec

Spam Bots

I really thought the spam bots would peter out in their incessant account creation here at tweetdonate but they have not. I’ve just changed it so the submit button is injected once the DOM loads using JQuery. I’m hoping spam bots aren’t running Rhino or something to process the pages they attack.

This should eliminate the spam accounts appearing in the tweetdonate timeline on Twitter.

1 Dec

A Month Later

I’m going into final exams here in Kingston so there haven’t been a lot of updates.

X Innovate came and went – a spectacular conference. TweetDonate didn’t win, but I was a finalist and have a plaque to prove it. I modified TweetDonate to process requests for documentation help and won an award at the hackathon at the conference. Met some great people and had a blast.

Had some interesting discussions about selling TweetDonate but no buyers have yet appeared. In the meantime, some people have started using the service and it’s been running smoothly for a few months now. Earlier tonight Twitter made a change to how they assign IDs to tweets which caused a temporary problem. That seems to be fixed now, although it did break my uptime record of about three months (even if only for 20 minutes).

Looking forward to more people using it. I was notified of the Twitter ID bug by @AmandyAnderson who is running what looks like a great twitter-a-thon here: http://www.wildgoosecreative.com/Wild_Goose_Creative___Home.html

25 Oct

Just in Time for PayPal Conf.: Premium Accounts

You can sign up for a free account here.

Premium accounts let you see statistics on donations, who’s been making donations (including Twitter details such as number of followers), where people are located who have viewed a donation link and change the way the donation page looks. top cryptocurrency

23 Oct

Geocoding Visitors

I’ve added a lot to the statistics side of TweetDonate. All clicks on links are now being geocoded (courtesy of http://geoip.pidgets.com/ and http://www.maxmind.com).

An interesting discovery of improved stats tracking is that I’ve discovered that there are many bots operating on the Twitter stream. Every link that is posted causes about eight or nine bots to visit the link within a minute or so.

User agent, host name, referrer, twitter followers and more will soon be available.

15 Oct

Really Looking Forward to PayPal Conference

TweetDonate is headed to San Francisco on the 23rd!

30 Sep

PayPal Links

For those who are contemplating their own PayPal/messaging programs, there’s an easy format for making PayPal links:
https://www.paypal.com/xclick/business={RECIPIENT'S EMAIL ADDRESS}&item_name={ITEM BEING PURCHASED}&currency_code={USD|CAD|GBP|EUR|AUD}&amount={AMOUNT OF MONEY}

28 Sep

Twitter Library

I was happily using Twitter using basic access authentication but at the end of August Twitter finally turned it off. I’ve previously written an OAuth library for a company I worked for so I know what a pain it is to deal with OAuth APIs. I highly recommend using tmhOAuth for your PHP Twitter projects. It’s a nice library to use and was pretty easy to integrate with my existing Twitter client class.

28 Sep

Sign Ups Are Now Being Reviewed

A very generous volunteer has agreed to screen charities by looking into their IRS and CRA tax status as well as making other inquiries to ensure that users don’t get duped. If traffic warrants I’ll also be developing automatic techniques but at the moment this monitoring application looks like it’ll suffice.

28 Sep

Shortening URLs: Decoding & Encoding

One of the things I needed to make for this project was a URL shortener. Sure I could have used one of the existing services but then people wouldn’t know it’s from this domain. I think there’s value in using shortened URLs from your own site.

This is the PHP code I use to convert tweetdonate.org/2AD3 into a link stored in the database, update the click count for that link and then send the user’s browser to the right location:
$key = $_GET['key'];
$ID = (int)base_convert($key,36,10);
$result = mysql_query('SELECT url FROM ShortenedLinks WHERE ID = '.$ID.' LIMIT 1');
$result = mysql_fetch_assoc($result);
mysql_query('UPDATE ShortenedLinks SET click_count=click_count + 1 WHERE ID = '.$ID.' LIMIT 1');
echo "This URL is no longer valid (if it ever was).";

How do you make the links? That’s even easier:

function shortened_link_create($url){
if(mysql_query('INSERT INTO ShortenedLinks(url) VALUES(\''.$url.'\')'))
return sprintf(SHORTENED_URL_LINK_TEMPLATE,base_convert(mysql_insert_ID(),10,36));
return false;

28 Sep

Voting on X.com

You can vote for TweetDonate here: https://ppdevchallenge.ebayinc.spigit.com/Page/ViewIdea?ideaid=163.

This voting is for the people’s choice award. I really appreciate your support!

23 Sep

TweetDonate Twitter Account

Added an interesting feature to my Twitter account (@tweetdonate) for this service that was inspired by a conversation with a friend of mine and fellow programmer John Piasetzki.

It’s a background that changes to show statistics about the service: http://twitter.com/tweetdonate

The background is updated by cron in fifteen minute increments by writing text over top of a preprepared PNG that has the logo and tag line. The image is then saved and uploaded to Twitter using the API. It’s actually pretty easy to make!

23 Sep

TweetDonate Not Working For You?

Check your @{your user name} messages on the right-hand side. Twitter may not be letting you see the TweetDonate messages. You can get around this by checking the @ messages or, better yet, following @tweetdonate.

23 Sep

Added Man Page Functionality

You can now tweet “man TweetDonate” to receive instructions on how to use it. More fun than useful, but people can now get a quick intro without coming to this site.

21 Sep

Two Days Left!

Just putting the finishing touches on the website, reviewed the competition guidelines and making sure everything works. Might post more info on how the program was made, but there’s a YQL post up already.

21 Sep

Building a Twitter Robot Using YQL

The main thing for building your own Twitter robot is to pick a word that will appear in all of your (and other people’s) tweets. Then, use the Twitter search API over and over to monitor for new tweets. As they come in, mark off the ID of that tweet so you don’t process it again. Next, have your program run whatever rules on the Tweet and send messages in response.

I recommend YQL for processing the Twitter feed because it’s ridiculously fast and can enormously cut down the amount of processing that you’ll have to do by filtering the results.
Here’s the YQL code that I’m using: USE 'http://www.datatables.org/twitter/twitter.search.xml' as twitter.search;SELECT text,from_user_id,id,from_user FROM twitter.search WHERE q='TweetDonate' AND rpp=100 AND since_id=x;

The since_id is where you put the ID that you saved earlier so that you don’t fetch the same tweets again. Depending on your application you might want to filter out a user. I’m filtering the tweetdonate user because I don’t want to reprocess my own status messages that are in response to other messages. I like returning JSON and json_decode’ing it in PHP. Instant search results using YQL.

19 Sep

Just posted my video to x.com

Follow Me!

Follow Me! Follow Me! Follow Me! Follow Me!

Recent Actions