こないだ試していたslimTimer API の続きなのだが、curlで情報を取得するときにいちいちファイルに出力しないとダメなのかという疑問はなんと解決したっす。
マニュアルを読むと
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
とか書いておけばcurl_exec() の返り値を文字列として取得できるよーである(通常はデータを直接出力するっぽい)ってことでいちいちFILE経由で取得する必要はなくなったのであった。
で、喜び勇んで試しに実行してみたが、curlで取得した文字列を simplexml_load_string で連想配列として取得し、その値を参照しようとしたのだが、どーやっても値を参照することができなかったっす。
うーむ。print_rでも確認できたので配列として格納はされているっぽいのだがどーしてだろうと悩んでいたのだが、ひょっとして変数の名前に問題があるのではと思い、検索してみたら、なんとやっぱりそーであった!(まじですか)
このあたりにその解決方法っぽいものが書かれている
ってことで連想配列キーにハイフンを含んだ変数名を利用していると参照するときになんだかうまく参照できないことが判明。
上記サイトを見ると、結局こんな風に参照するらしい。
■間違った方法
$xml = simplexml_load_string(get_slimtimer());
$access_token = $xml->access-token;
■正しい方法
$xml = simplexml_load_string(get_slimtimer());
$access_token = $xml->{'access-token'};
うーむ、{''}で括るのか・・・
これで、3時間くらいハマった・・・orz
で、やっとここまでできた。
で、その後、taskのリストとかを取得したいねえと思って、slimTimer API を見てみたが、どうもよくわかんないっす。
パラメータの意味とかcurlの利用方法とかがいまいちよくわかってないのでまた止まってしまった。うーむ。
ってことでまだまだ続くのであった。(cURL便利だけど結構面倒)