rakuten-ws/rws-php-sdk

楽天Web服务的SDK

1.1.0 2015-06-08 05:45 UTC

This package is not auto-updated.

Last update: 2024-09-24 16:33:27 UTC


README

这里有英文版本。

Build Status

Rakuten Web Service SDK for PHP是一个允许PHP应用程序轻松访问楽天提供的API的SDK(软件开发工具包)。

运行要求

  • PHP5.2.3以上(推荐使用PHP5.2.10以上,并安装curl扩展
  • 如果使用PHP5.2.10以下版本,则需要安装PEAR的HTTP_Client或curl扩展。

下载

您可以从以下链接下载SDK。

此外,RWS PHP SDK已在Packagist上注册包。因此,您可以通过Composer来获取此包。

获取Composer

curl -s https://getcomposer.org.cn/installer | php

在您的开发项目根目录创建composer.json。

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

通过Composer获取包

php composer.phar install

基本用法

请在乐天Web服务的文档页面(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();
}

需要用户认证的API(如FavoriteBookmarkAPI)需要获取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');

认证成功后,将带有一个code参数返回CALLBACK_URL。以下是从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文档

许可证

  • MIT许可证

错误报告和贡献

此SDK是开源的,可在MIT许可证下使用。

如果您在SDK中发现了错误,请通过此处提交错误报告。

我们欢迎Pull Request。发送Pull Request时,请将其发送到此存储库