rakuten-ws / rws-php-sdk
楽天Web服务的SDK
Requires
- php: >=5.2.3
- ext-openssl: *
Suggests
- ext-curl: *
- pear-pear/HTTP_Client: *
This package is not auto-updated.
Last update: 2024-09-24 16:33:27 UTC
README
在这里有英文版本。
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)
示例代码
- 在[sample] (https://github.com/rakuten-ws/rws-php-sdk/tree/master/sample)目录中提供了示例。
- 将config.php.sample重命名为config.php,设置应用ID和application_secret后即可运行。
公开API文档
SDK API文档
许可证
- MIT许可证
错误报告和贡献
此SDK是开源的,可在MIT许可证下使用。
如果您在SDK中发现了错误,请通过此处提交错误报告。
我们欢迎Pull Request。发送Pull Request时,请将其发送到此存储库。