Do You PHP はてブロ

Do You PHPはてなからはてブロに移動しました

PEAR::Services_Recruit_Akasugu作ってみた

先日リクルート社のAPIが公開されました。


リクルートは8月1日、リクルート保有するデータベースを利用するためのAPIを一括提供するサイト「リクルートWEBサービス」を公開した。同時に、これまで未公開であった「エイビーロード」「リクルート進学ネット」「赤すぐnet」「ホットペッパーBeauty」の4つのAPIも提供開始された。

で、まずは「赤すぐ.net」の5つのAPIをwrapしたPEARパッケージを作ってみました。

インストールは

# pear install -a http://www.doyouphp.jp/pear/Services_Recruit_Akasugu-0.0.1.tgz

な感じで。
PEAR::Services_FeedMeterPEAR::Services_Hatena_Starと同様、HTTP_Request1.4.1以上が必要になります。なお、PHP5.2.x系のみ対応としていますが、特別な拡張やPEARパッケージを使っているわけではないので、PHP5系であれば動作すると思います(PHP5.2.3以外は動作未確認です)。
また、APIドキュメントも用意してあります。

基本的な使い方は、

  1. Services_Recruit_Akasugu_Factoryを使ってサービスインスタンスを取得
  2. 各パラメータをセット
  3. Services_Recruit_Akasugu#invoke()
  4. invoke()の戻り値を適宜変換して利用する

となります。具体的なサンプルは次のような感じです。

<?php
require_once "Services/Recruit/Akasugu/Factory.php";

/**
 * 別途APIキーを取得しておく必要がある
 */
$APIKEY = '[APIキー]';

/**
 * 大カテゴリマスタAPI
 */
$obj = Services_Recruit_Akasugu_Factory::getInstance(
           Services_Recruit_Akasugu_Factory::API_MODE_LCAT, $APIKEY);
$obj->setFormat(Services_Recruit_Akasugu::FORMAT_JSON);
var_dump($obj->invoke());

/**
 * 中カテゴリマスタAPI
 */
$obj = Services_Recruit_Akasugu_Factory::getInstance(
           Services_Recruit_Akasugu_Factory::API_MODE_MCAT, $APIKEY);
$obj->addLargeCategory(2);
$obj->addLargeCategory(4);
$obj->setFormat(Services_Recruit_Akasugu::FORMAT_JSON);
var_dump($obj->invoke());

/**
 * 小カテゴリマスタAPI
 */
$obj = Services_Recruit_Akasugu_Factory::getInstance(
           Services_Recruit_Akasugu_Factory::API_MODE_SCAT, $APIKEY);
$obj->addLargeCategory(2);
$obj->addMiddleCategory(201);
$obj->setFormat(Services_Recruit_Akasugu::FORMAT_JSON);
var_dump($obj->invoke());

/**
 * 対象月例マスタAPI
 */
$obj = Services_Recruit_Akasugu_Factory::getInstance(
           Services_Recruit_Akasugu_Factory::API_MODE_AGE, $APIKEY);
$obj->setFormat(Services_Recruit_Akasugu::FORMAT_JSON);
var_dump($obj->invoke());

/**
 * 商品検索API
 */
$obj = Services_Recruit_Akasugu_Factory::getInstance(
           Services_Recruit_Akasugu_Factory::API_MODE_ITEM, $APIKEY);
$obj->setFormat(Services_Recruit_Akasugu::FORMAT_JSON);
$obj->addMiddleCategory(401);
$obj->addMiddleCategory(402);
$obj->setPriceMax(5000);
$obj->setOrder(Services_Recruit_Akasugu_Item::ORDER_LOWPRICE);
$obj->setCount(20);
var_dump($obj->invoke());

残りも時間があれば作ってみようかと。。。「あれば」の話;-)