rakuten-ws/rws-php-sdk 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

rakuten-ws/rws-php-sdk

Composer 安装命令:

composer require rakuten-ws/rws-php-sdk

包简介

The SDK of Rakuten Web Service

README 文档

README

There is an English version in here.

Build Status

Rakuten Web Service SDK for PHP は、PHPアプリケーションから 楽天が提供しているAPIに、簡単にアクセスすることができるSDK (Software Development Kit)です。

動作要件

  • PHP5.2.3以上 (PHP5.2.10以上, curl拡張 導入を推奨)
  • PHP5.2.10未満を利用する場合、PEAR の HTTP_Client か curl拡張の導入が必要です。

ダウンロード

以下からSDKをダウンロードすることができます。

また、RWS PHP SDK は、Packagist にパッケージ登録を行っています。 そのため、 Composer を通してパッケージを入手することができます。

composer を入手します

curl -s http://getcomposer.org/installer | php

あなたの開発プロジェクトのルートに composer.json を作成します。

{
    "require": {
        "rakuten-ws/rws-php-sdk": "1.*"
    }
}

composer を通してパッケージを入手します

php composer.phar install

基本的な使い方

事前に、楽天ウェブサービスのドキュメントページ(http://webservice.rakuten.co.jp) にて、アプリ登録を行ってください。

このドキュメントと同じディレクトリにある autoload.php を読み込むことにより、 SDK の利用準備が整います。

ユーザ認証の必要のない、APIについては、以下のように情報を取得することができます。

<?php

require_once '/path/to/sdk-dir/autoload.php';

$client = new RakutenRws_Client();
// アプリID (デベロッパーID) をセットします
$client->setApplicationId('YOUR_APPLICATION_ID');

// アフィリエイトID をセットします(任意)
$client->setAffiliateId('YOUR_AFFILIATE_ID');

// IchibaItem/Search API から、keyword=うどん を検索します
$response = $client->execute('IchibaItemSearch', array(
  'keyword' => 'うどん'
));

// レスポンスが正しいかを isOk() で確認することができます
if ($response->isOk()) {
    // 配列アクセスによりレスポンスにアクセスすることができます。
    var_dump($response['hits']);
} else {
    echo 'Error:'.$response->getMessage();
}

RakutenRws_Client::execute() には、API名、パラメータ、バージョンを 指定します。そのうち、バージョンについては省略することが可能で、 省略した場合、自動的にSDKが指定した最新バージョンを選択します。

以下のAPIはレスポンスが、Iterator に対応しているため foreach で 情報(商品情報・施設情報など) を順次取得することが可能です。

  • AuctionGenreKeywordSearch
  • AuctionItemCodeSearch
  • AuctionItemSearch
  • BooksBookSearch
  • BooksCDSearch
  • BooksDVDSearch
  • BooksForeignBookSearch
  • BooksGameSearch
  • BooksMagazineSearch
  • BooksSoftwareSearch
  • BooksTotalSearch
  • FavoriteBookmarkList
  • GoraGolfCourseDetail
  • GoraGolfCourseSearch
  • GoraPlanSearch
  • HighCommissionShopList
  • IchibaItemRanking
  • IchibaItemSearch
  • KoboEbookSearch
  • ProductSearch
  • RecipeCategoryRanking
  • TravelHotelDetailSearch
  • TravelKeywordHotelSearch
  • TravelSimpleHotelSearch
  • TravelVacantHotelSearch

以下が例です。

<?php

require_once '/path/to/sdk-dir/autoload.php';

$client = new RakutenRws_Client();
$client->setApplicationId('YOUR_APPLICATION_ID');
$client->setAffiliateId('YOUR_AFFILIATE_ID');

$response = $client->execute('IchibaItemSearch', array(
  'keyword' => 'うどん'
));

if ($response->isOk()) {
    // レスポンスを foreach でアクセスできます
    foreach ($response as $item) {
        echo $item['itemName']."\n";
    }
} else {
    echo 'Error:'.$response->getMessage();
}

FavoriteBookmarkAPI (楽天ブックマーク系API) のようなユーザ認証が必要な APIを使う場合は、 access_token を取得する必要があります。

まず、ユーザを認証ページに誘導してください。認証ページのURLは、以下のように取得することができます。 この時、 RakutenRws_Client::getAuthorizeUrl() には、API利用スコープを設定することを忘れないください。

<?php

require_once '/path/to/sdk-dir/autoload.php';

$client = new RakutenRws_Client();
// アプリID (デベロッパーID) をセットします
$client->setApplicationId('YOUR_APPLICATION_ID');
// Secret をセットします
$client->setSecret('YOUR_APPLICATION_SECRET');
// リダイレクトURL (ログイン後に戻ってくるURL) をセットします
$client->setRedirectUrl('CALLBACK_URL');

// 認証ページへのURLを取得します
// APIドキュメントを参照の上、利用スコープを指定してください
echo $client->getAuthorizeUrl('rakuten_favoritebookmark_read');

認証が成功すると、CALLBACK_URL に code というパラメータ付きで 戻されます。以下のように、code から access_token を取得することができます。

<?php

require_once '/path/to/sdk-dir/autoload.php';

$client = new RakutenRws_Client();
// アプリID (デベロッパーID) をセットします
$client->setApplicationId('YOUR_APPLICATION_ID');
// Secret をセットします
$client->setSecret('YOUR_APPLICATION_SECRET');
// アフィリエイトID をセットします (任意)
$client->setAffiliateId('YOUR_AFFILIATE_ID');
// リダイレクトURL (ログイン後に戻ってくるURL) をセットします
$client->setRedirectUrl('CALLBACK_URL');

// code から access_token を取得します
// 失敗すると null となります
if (!$client->fetchAccessTokenFromCode()) {
    echo "Error: アクセストークン取得失敗";
    die();
}

// FavoriteBookmarkList で お気に入りブックマークを
// 10件取得します
$client->execute('FavoriteBookmarkList', array(
    'hits' => 10
));

if ($response->isOk()) {
  foreach ($response as $item) {
    echo $item['itemName']."\n";
  }
} else {
    echo 'Error:'.$response->getMessage();
}

プロキシの設定

RakutenRws_Client::setProxy() で、プロキシを通してAPIにアクセスすることができます。

以下が利用例になります

<?php

require_once '/path/to/sdk-dir/autoload.php';

$client = new RakutenRws_Client();
$client->setProxy('proxy-host.example.com:port');
$client->setApplicationId('YOUR_APPLICATION_ID');
$client->setAffiliateId('YOUR_AFFILIATE_ID');

// このリクエストは、プロキシを通して行われます。
$response = $client->execute('IchibaItemSearch', array(
  'keyword' => 'うどん'
));

旧バージョンからのバージョンアップ

バージョン1.1 では、APIの廃止に伴い、以下の操作ができなくなりました。

代わりに、新バージョン・統合されたバージョンを利用することができます。

  • ItemSearch (IchibaItemSearch が利用できます)
  • ItemCodeSearch (IchibaItemSearch が利用できます)
  • ItemRanking (IchibaItemRanking が利用できます)
  • ProductDetail (ProductSearch が利用できます)
  • ProductGenreInfo (ProductSearch が利用できます)
  • ProductMakerInfo
  • GetAreaClass (TravelGetAreaClass が利用できます)
  • GetHotelChainList (TravelGetHoralChainList が利用できます)
  • HotelDetailSearch (TravelHotelDetailSearch が利用できます)
  • HotelRanking (TravelHotelRanking が利用できます)
  • KeywordHotelSearch (TravelHotelSearch が利用できます)
  • SimpleHotelSearch (TravelSimpleHotelSearch が利用できます)
  • VacantHotelSearch (TravelVacantHotelSearch が利用できます)
  • GoraGolfCourseSearch (GoraGoraGolfCourseSearch が利用できます)
  • GoraGolfCourseDetail (GoraGoraGolfCourseDetail が利用できます)
  • GoraPlanSearch (GoraGoraPlanSearch が利用できます)
  • HighCommissionShop (HighCommissionShopList が利用できます)

サンプルコード

公開APIドキュメント

SDK API Document

ライセンス

  • MIT License

バグ報告・コントリビュート

この SDK は、オープンソースです。 MIT License の下で利用することができます。

もし、あなたがSDK中に間違えを見つけた場合は、こちらから バグ報告を行ってください。

また、Pull Request を歓迎しております。 Pull Request を行う場合は、こちらのレポジトリ に対して、 送信してください。

rakuten-ws/rws-php-sdk 适用场景与选型建议

rakuten-ws/rws-php-sdk 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 118.56k 次下载、GitHub Stars 达 90, 最近一次更新时间为 2012 年 07 月 26 日, 在 PHP 生态内属于活跃度较高的组件。

它主要适用于以下技术方向: 「client」 「sdk」 「webapi」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。

我们在过去多个企业项目中使用过 rakuten-ws/rws-php-sdk 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 rakuten-ws/rws-php-sdk 我们能提供哪些服务?
定制开发 / 二次开发

基于 rakuten-ws/rws-php-sdk 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 118.56k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 90
  • 点击次数: 15
  • 依赖项目数: 1
  • 推荐数: 0

GitHub 信息

  • Stars: 90
  • Watchers: 10
  • Forks: 35
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2012-07-26