久しぶりに、なかなかうまく行かない!と悩んでしまいました。なんで情報がないんでしょうねぇ。
さて、最近、すごい!量のタスクが重なり、何から手をつけていいのか悩む状態になっており、これを解消するために、再び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;
など、自由にいけます。
コメント