Remember the milkのAPIで遊ぶ

30分プログラム、その345。Remember The Milk: Online to-do list and task managementAPIで遊んでみる。特に作りたいアプリは無いので、rtm.test.echoを使った贅沢なechoを作ってみた。

APIはRESTなので

http://api.rememberthemilk.com/services/rest/?method=<method>&api_key=<api>&arg1=val1

みたいにするだけでOK。format=jsonを付ければ、結果をJSONで受けとれる。

ところで、各ファイルの拡張子がrtmになってる。芸が細かい。

使い方

$ perl rtm.pl echo
echo

ソースコード

Perlでハッシュをマージするには、

my %hash = (%hash1,%hash2);

でいいらしい。すげー。

#! /usr/bin/perl
# -*- mode:perl; coding:utf-8 -*-
#
# rtm.pl -
#
# Copyright(C) 2008 by mzp
# Author: MIZUNO Hiroki / mzpppp at gmail dot com
# http://howdyworld.org
#
# Timestamp: 2008/08/13 23:24:51
#
# This program is free software; you can redistribute it and/or
# modify it under MIT Lincence.
#
use strict;
use warnings;

use LWP::Simple;
use JSON::XS;

use Data::Dumper;


my %default = (
  'api_key' => '<api_key>',
  'format'  => 'json');

sub request($%){
  my ($method,%params) = @_;
  %params = (%default,%params,'method'=>$method);

  my $param = join('&',map { "${_}=${params{$_}}" } keys %params);
  my $url = 'http://www.rememberthemilk.com/services/rest/?' . $param;

  decode_json get($url);
}

my $response = request('rtm.test.echo','msg'=>$ARGV[0]);
print $response->{'rsp'}->{'msg'},"\n";