Remember The MilkのAPIを使う方法

久しぶりに、なかなかうまく行かない!と悩んでしまいました。なんで情報がないんでしょうねぇ。

さて、最近、すごい!量のタスクが重なり、何から手をつけていいのか悩む状態になっており、これを解消するために、再びGTDの手法を使おう!ということにしていました。
基本手書きをメインとしており、最初はそれで良かったのですが、GTDでいうプロジェクトの数が、すごいことになってしまい機能不全になりかけてしまいました。
そこで、今後はRTMだ!ということで、使おう!と思いたったわけです。RTMにはAPIが公開されており、そこから手帳にタスクを書き出すようにしようというところで、悩みが広がりました。

で、数時間の成果をここでまとめておきます。
(0)予めAPI_KEYを取得しておく
(1)今後も使えるよう簡単な関数を作っておきます

function getRtmSecretKeyParams($params){
   $params['api_key']=API_KEY;
   $params['perms']='delete';
   ksort($params);
   $skey='';
   foreach($params as $key=>$val){
     $skey .=$key.$val;
     $urlparams .='&'.$key.'='.$val;
   }
   $skey=md5(SECRET_KEY.$skey);
   $urlparams=substr($urlparams,1);
   return $urlparams.'&api_sig='.$skey;
 }

(2)続いてfrobを獲得する

define('END_POINT_URL','http://api.rememberthemilk.com/services/rest/');
//get frob
$params=array();
$params['method']='rtm.auth.getFrob';
$ret=getRtmSecretKeyParams($params);
$ret=file_get_contents( END_POINT_URL.'?'.$ret);
$xml=simplexml_load_string($ret);
$frob=(string)$xml->frob;
echo $frob;  //これがfrobの値です

(3)次に、Tokenを取得します。
ここで、とっても長い時間を使ってしまいました。
(2)の続きでプログラムを進めて構わないのですが、

define('AUTH_URL','http://www.rememberthemilk.com/services/auth/');
$params=array();
$params['method']='rtm.auth.getToken';
$params['frob']=$frob;
$ret=getRtmSecretKeyParams($params);
echo "まず承認プロセスを経るためにURLを表示します。これをコピペしてブラウザで表示して下さい\n";
echo AUTH_URL.'?'.$ret."\n";
echo "承認プロセスを経たら、以下のURLを表示させて下さい\n";
echo  END_POINT_URL.'?'.$ret ."\n";

ここで、最初に表示されるURLをブラウザで表示させ、クリックが必要です!(コレが重要!)

(4)続いて、同じパラメータを利用してTokenを取得です
上記の最後の行で表示したURLを表示します。
これで、tokenが取得できます。

基本これで、OKなのですが、この後は

$params['method']='rtm.auth.checkToken';
$params['auth_token']=$token;

をこなして、tokenを確認させないといけません。
面倒なんですが、こういうものみたいです。
あとは、

$params['method']='rtm.tasks.getList';
$params['auth_token']=$token;

など、自由にいけます。

コメント

タイトルとURLをコピーしました