Remember the milkのAPIで認証する
30分プログラム、その346。Remember The Milk: Online to-do list and task managementのAPIで認証が必要なやつにチャレンジしてみる。
が、うまくいかない。Remember The Milk - Services / API / Authenticationを参考にしてるはずなんだけどなぁ。
使い方
$ <つかえない>
ソースコード
#! /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 Digest::MD5 qw(md5_hex); use Data::Dumper; my %default = ( 'api_key' => '<api key>', 'format' => 'json'); sub params(%){ my (%params) = @_; join('&',map { "${_}=${params{$_}}" } sort keys %params); } sub api_sig(%){ my (%params) = @_; my $concat = join('', map { "${_}${params{$_}}" } sort keys %params); my $secret = '<secret key>'; md5_hex($secret . $concat); } sub request($$%){ my ($rest,%params) = @_; my $params = params(%params); print Dumper($rest.$params.'&api_sig='.api_sig(%params)); decode_json get($rest.$params.'&api_sig='.api_sig(%params)); } my $rest = 'http://api.rememberthemilk.com/services/rest/?'; my $auth = 'http://www.rememberthemilk.com/services/auth/?'; sub auth_key(){ my $frob = request($rest, 'method'=>'rtm.auth.getFrob', %default)->{'rsp'}->{'frob'}; request($auth,'perms'=>'delete','frob'=>$frob,%default); } print Dumper(auth_key());