ircykk / allegro-api
Allegro API 客户端
v1.22.0
2019-12-09 17:33 UTC
Requires
- php: >=5.6
- php-http/client-common: ^1.6
- php-http/discovery: ^1.0
- php-http/httplug: ^1.1
- psr/cache: ^1.0
- psr/http-message: ^1.0
- ramsey/uuid: ^3.0
Requires (Dev)
- phpunit/phpunit: ^5.7
README
Allegro API 客户端库,用 PHP 编写。
要求
- PHP >= 5.6 或 PHP >= 7.0
- HTTP 客户端
功能
- REST 和 SOAP WebApi
- 沙箱支持
- 自动完成
- PSR 兼容
安装
通过 Composer
composer require ircykk/allegro-api
库基于HTTPlug构建,我们需要安装 HTTP 客户端。
composer require php-http/guzzle6-adapter "^1.1"
开发者文档
https://developer.allegro.pl/documentation/
客户端使用
使用 OAuth 进行认证
<?php // Composer autoload require_once __DIR__.'/vendor/autoload.php'; $credentials = ... $client = new \Ircykk\AllegroApi\Client($credentials); // Redirect to allegro for authenticate and get back with code if (!isset($_GET['code'])) { header('Location: '.$client->getAuthUrl()); } else { $token = $client->fetchAccessTokenWithAuthCode($_GET['code']); // Store access token... }
我们拥有 $token->access_token
用于认证我们未来的所有请求。
见 示例。
客户端凭证流程
为了访问公共资源,如类别或产品,使用客户端凭证流程
$token = $client->fetchAccessTokenWithClientCredentials();
设备流程
要使用无浏览器的设备流程,使用 getAuthUserCode()
方法获取 user_code
和验证 URI
$code = $client->getAuthUserCode();
然后用户认证设备后,您可以获取 access_token
$code = ... $token = $client->fetchAccessTokenWithDeviceCode($code->device_code);
制作请求
<?php // Composer autoload require_once __DIR__.'/vendor/autoload.php'; $credentials = ... $token = ... $client = new \Ircykk\AllegroApi\Client($credentials); $client->authenticate($token); $categories = $client->sale()->categories()->all();
制作 SOAP 请求
$credentials = ... // WebApi SOAP client $soapClient = new \Ircykk\AllegroApi\WebapiClient($credentials); $categories = $soapClient->webApi()->getCatsDataLimit(0, 10);
沙箱
为了使用 沙箱环境,只需将 Credentials
属性 $sandbox
设置为 true。
$credentials = new \Ircykk\AllegroApi\Credentials( ... true // Sandbox );
缓存使用
使用任何 PSR-6 兼容的库来缓存请求。
在此示例中,我们使用 Symfony Cache,要安装,只需运行
$ composer require symfony/cache
$credentials = ... $client = new Client($credentials); $cache = new FilesystemAdapter(); $client->addCache($cache, ['default_ttl' => 3600]);
见 示例。
记录器
使用任何 PSR-3 记录器库,例如 Monolog,要安装,只需运行
$ composer require monolog/monolog
$credentials = ... $client = new Client($credentials); $logger = new Logger('api'); $logger->pushHandler( new StreamHandler(__DIR__.'/api.log', Logger::DEBUG) ); $loggerPlugin = new LoggerPlugin($logger); $client->addPlugin($loggerPlugin);
见 示例。
自定义
感谢 HTTPlug 库可以轻松自定义,例如,要设置语言,请使用 HeaderDefaultsPlugin 插件
... $headerDefaultsPlugin = new HeaderDefaultsPlugin([ 'Accept-Language' => 'en-US' ]); $client->addPlugin($headerDefaultsPlugin);
待办事项
- 测试
- 文档
贡献
请随时贡献。
致谢
API 客户端基于 HTTPlug 构建,并受到 KnpLabs GitHub 客户端的启发。
由 wsdl2phpgenerator 库生成的 Soap 类型。