utg / epg-client
EPG API 的 HTTP 客户端
2.3+api.0.10
2020-11-09 09:56 UTC
Requires
- firebase/php-jwt: =5.0.0
- guzzlehttp/guzzle: ^6.3
Requires (Dev)
- phpunit/phpunit: ^5
- dev-master
- 2.3+api.0.10
- 2.2.1+api.0.9
- 2.2+api.0.9
- 2.1.1+api.0.9
- 2.1+api.0.9
- 2.0+api.0.7
- 1.3.3+api.0.6
- 1.3.2+api.0.6
- 1.2.1
- 1.2
- 1.1
- 1.0
- 0.1.9
- 0.1.7
- 0.1.6
- 0.1.5
- 0.1.0
- dev-dependabot/composer/guzzlehttp/psr7-1.9.1
- dev-dependabot/composer/firebase/php-jwt-6.0.0
- dev-dependabot/composer/guzzlehttp/guzzle-6.5.8
- dev-#6
This package is auto-updated.
Last update: 2024-09-19 22:45:31 UTC
README
安装
$ composer require utg/epg-client ^2.0
然后您需要在项目中实现 \EpgClient\ConfigInterface
。这将用于客户端配置变量的持久化存储。
获取特定账户的实体
通过只读 API 密钥初始化客户端
/** @var \EpgClient\ConfigInterface $config */
$config = new YourConfig();
$config->set($config::API_URL, 'https://<api_url>');
$config->set($config::API_KEY, '<your_api_key>');
$client = new EpgClient\Client($config);
$client->setAuthType(EpgClient\Client::AUTH_TYPE_API_KEY);
$client->setAcceptLanguage(EpgClient\Client::LANG_UK); #optional
频道
/** @var EpgClient\Context\AccountChannel[] $channels */
$channels = $client->getAccountChannelResource()
->get()
->exec()
->getArrayResult();
/** @var EpgClient\Context\AccountChannel $channel */
$channel = $client->getAccountChannelResource()
->get($channelId)
->exec()
->getSingleResult();
类别
/** @var EpgClient\Context\AccountCategory[] $categories */
$categories = $client->getAccountCategoryResource()
->get()
->exec()
->getArrayResult();
/** @var EpgClient\Context\AccountCategory $categorie */
$category = $client->getAccountCategoryResource()
->get($categoryId)
->exec()
->getSingleResult();
类型
/** @var EpgClient\Context\AccountGenre[] $genres */
$genres = $client->getAccountGenreResource()
->get()
->exec()
->getArrayResult();
/** @var EpgClient\Context\AccountGenre $genre */
$genre = $client->getAccountGenreResource()
->get($genreId)
->exec()
->getSingleResult();
节目
/**
* You can get program collection by instance of Channel
*
* @var EpgClient\Context\Channel $channel
* @var EpgClient\Context\AccountProgram[] $programs
*/
$programs = $client->getAccountProgramResource()
->getByChannel($channel)
->setPeriod(AccountProgramResource::PERIOD_NOW)
->exec()
->getArrayResult();
/**
* Or you cat get program collection by channel id
*
* @var string $channelId
* @var EpgClient\Context\AccountProgram[] $programs
*/
$programs = $client->getAccountProgramResource()
->getByChannelId($channelId)
->setPeriod(AccountProgramResource::PERIOD_TODAY)
->exec()
->getArrayResult();
/**
* Search program by title
*/
$programs = $client->getAccountProgramResource()
->getByTitle('Program title')
->setPeriod(AccountProgramResource::PERIOD_MONTH)
->limit(10)
->exec()
->getArrayResult();
/**
* @var string $programId
* @var EpgClient\Context\AccountProgram $program
*/
$program = $client->getAccountProgramResource()
->get($programId)
->exec()
->getSingleResult();
管理实体
通过登录/密码初始化客户端
/** @var \EpgClient\ConfigInterface $config */
$config = new YourConfig();
$config->set($config::API_URL, 'https://<api_url>');
$config->set($config::API_ADMIN, '<your_admin_user>');
$config->set($config::API_PASSWORD, '<your_admin_password>');
$client = new EpgClient\Client($config);
# Optional client settings
$client->setAcceptLanguage(EpgClient\Client::LANG_UK);
频道(完整示例)
/** @var EpgClient\Context\AccountChannel[] $channels */
$channels = $client->getAccountResource()
->getChannels()
->disablePagination() # optional: pagination disable
->withGroup(EpgClient\Resource\ChannelResource::GROUP_TRANSLATIONS) # optional: translations, images, ...
->setLanguage(EpgClient\Client::LANG_UK) # optional: set language only for one request
->exec()
->getArrayResult();
类别(简短示例)
/** @var EpgClient\Context\AccountCategory[] $categories */
$categories = $client->getAccountResource()
->getCategories()
->exec()
->getArrayResult();
类型
/** @var EpgClient\Context\AccountGenre[] $genres */
$genres = $client->getAccountResource()
->getGenres()
->exec()
->getArrayResult();