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 {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException
{
...
// get spoonerism (gets PHP-generated JSON from my Free.fr 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() );
w.flush();
w.close();
}
}
Configuration
Do usual conf in war\WEB-INF\web.xml
Example for file war\WEB-INF\cron.xml.
<?xml version="1.0" encoding="UTF-8"?>
<cronentries>
<cron>
<url>YOUR APP-RELATIVE URL HERE (starts with /) </url>
<description>tweete a spoonerism</description>
<schedule>every 8 hours</schedule>
</cron>
</cronentries>
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.
Epilogue
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
Jérôme