OK WaveのAPIを使おうかと思って探したのですが、中々見つからず、
苦労した挙句、見つけたサイトが以下、
http://zerosp.com/mt/archives/okwave-websearvice.php
一応、念のため一部転記させて頂きます。詳しくは、上記サイトを。
アクセスするURL
http://search.okwave.jp/search?
必須パラメータ
- mode : モード指定。searchにすること。
-
word : 検索文字列(UTF8)
省略可のパラメータ()内がデフォルト値です。
- type : 検索タイプ。keyword : キーワード検索。 word : 自然文検索。(keyword)
- start : 検索結果取得開始位置。(0)
- items : 検索結果取得数。(20)
- booleam : 複数キーワード時の検索条件。and : AND検索。or : OR検索(and)
- sort : ソート条件。(score)
- order : 並び順。asc : 昇順。desc : 降順。(desc)
- before_date : 日付での絞り込み[yyyy-MM-dd] (以前全て)
- after_date : 日付での絞り込み[yyyy-MM-dd] (当日)
- ques_stat : 質問ステータス絞込み条件。all : 全ての質問。before : 受付中。after : 締め切済み。(all)
- ans_stat : 回答ステータスでの絞り込み。all : 全て。before : 回答無し。after : 回答あり。best : 良回答・次点あり (all)
- thank_stat : お礼ステータスでの絞り込み。all : 全て。before : お礼無し。after : お礼あり。(all)
- remak_stat : 補足ステータス日付での絞り込み。all : 全て。before : 補足無し。after : 補足あり。(all)
- c : カテゴリ絞込み。(all)
- target : 検索対象、複数指定可能。ques_title : タイトル。ques_text : 質問本文。answer : 回答本文。thank : お礼。remark : 補足。best_answer : 良回答。(デフォルト すべての項目)
- take : データ取得対象、複数指定可能。(デフォルト すべての項目)
ソートパラメータで使用できる値
- score : スコア順
- date : 日時順
- answer_count : 回答数順
- remark_count : 補足数順
- thank_count : お礼数順
- pv : アクセス数順
- qst_instructive : 役に立った順
- instructive : 参考になった順
久しぶりに、なかなかうまく行かない!と悩んでしまいました。なんで情報がないんでしょうねぇ。
さて、最近、すごい!量のタスクが重なり、何から手をつけていいのか悩む状態になっており、これを解消するために、再びGTDの手法を使おう!ということにしていました。
基本手書きをメインとしており、最初はそれで良かったのですが、GTDでいうプロジェクトの数が、すごいことになってしまい機能不全になりかけてしまいました。
そこで、今後はRTMだ!ということで、使おう!と思いたったわけです。RTMにはAPIが公開されており、そこから手帳にタスクを書き出すようにしようというところで、悩みが広がりました。
で、数時間の成果をここでまとめておきます。
(0)予めAPI_KEYを取得しておく
(1)今後も使えるよう簡単な関数を作っておきます
1
2
3
4
5
6
7
8
9
10
11
12
13
| 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を獲得する
1
2
3
4
5
6
7
8
9
| 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)の続きでプログラムを進めて構わないのですが、
1
2
3
4
5
6
7
8
9
| 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なのですが、この後は
1
2
| $params['method']='rtm.auth.checkToken';
$params['auth_token']=$token; |
をこなして、tokenを確認させないといけません。
面倒なんですが、こういうものみたいです。
あとは、
1
2
| $params['method']='rtm.tasks.getList';
$params['auth_token']=$token; |
など、自由にいけます。