Introduction and goal

As I know that will help at least one person, here is how I publish new spoonerisms on my other Twitter account @kontrepeteries on a regular and automated basis.

(A) Solution

The solution I chosed is to CRON a servlet deployed on GAE/J. This servlet uses Twitter4J, a very quick & simple API.

Servlet code

The code is shortened for brevity.

Actually, the servlet displays what is tweeted so that I could verify all went well at write+test time.

public class FetchLatestContrepServlet extends HttpServlet {

        protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException 
                // get spoonerism (gets PHP-generated JSON from my website and unmarshall it)
                Contrep c = VaVoirChezFree.getUneContrepAvecIdSuperieur(bi.getHighestContrepId()); // just the id of the latest fetched contrep as parameter. 
                // UPD twitter status
                Twitter tw = new Twitter("YOUR_LOGIN","YOUR_PASSWORD");
                try {
                        tw.updateStatus( c.getText() );
                } catch (TwitterException e) {
                        log("twitter update error " + e.getMessage() );

                writer.append( c.getId() );
                writer.append( c.getText() );


Do usual conf in war\WEB-INF\web.xml

Example for file war\WEB-INF\cron.xml.

<?xml version="1.0" encoding="UTF-8"?>
                <url>YOUR APP-RELATIVE URL HERE (starts with /) </url>
                <description>tweete a spoonerism</description>
                <schedule>every 8 hours</schedule>

There is a possibility to restrain usage to the "admin" role so that you get sure it's only executed by the CRON launcher. See official documentation. But if you want to run it by hand, don't.


No rocket science here. This is how to do a CRON in GAEJ, you may modify this code to read tweets on a regular basis and save them to wherever you want (cloud, Free, ....).

If you have an Android device and a wave account, you may also check A wave regularly to save new blips to another place (twitter, DB) so that you can use your own (lighter) client to read waves. I've been told GW is slow on Android,

IMO, for wave-to-whatever data-transfer, use a wave robot.

Stay tuned for the release of my wave robot framework.

Meanwhile, if you understand French wordplays, @kontrepeteries may entertain you.

Follow me @wadael , it's sometimes worth it.

See you