langleyfoxall / press-association-tv-api-wrapper
📺⌚️ 提供有关电视频道、时间和时间项目的相关信息
Requires
- cache/filesystem-adapter: ^1.0
- guzzlehttp/guzzle: ^6.3
- illuminate/support: ^5.1
- nesbot/carbon: ^1.25
This package is auto-updated.
Last update: 2024-08-27 02:57:31 UTC
README
此软件包提供对Press Association TV API客户端的支持。
它提供了有关电视频道、时间和时间项目的相关信息。
Press Association (PA)是英国和爱尔兰的国家新闻机构,也是网络、移动、广播和印刷领域的领先的多媒体内容提供商。在过去145年里,PA一直提供快速、准确的文章、数据、照片和视频。今天,该业务越来越专注于为数字和印刷客户提供完整的产品。
安装
要安装,只需从项目的根目录运行以下Composer命令。
composer require langleyfoxall/press-association-tv-api-wrapper
使用方法
首先使用您的API密钥实例化客户端。
$client = new \LangleyFoxall\PressAssociationTvApi\Client('API_KEY');
频道
要获取有关频道的详细信息,请调用getChannel
方法,传递频道ID。如果您想一次性获取多个频道的详细信息,可以调用getChannels
方法,传递频道ID数组。
这些方法分别返回一个Channel
对象或一组Channel
对象。
您可能希望将此方法调用放在try catch块中,以捕获任何网络异常。
$channel = $client->getChannel('da015cc7-a71e-3137-a110-30dc51262eef'); $channels = $client->getChannels([ 'da015cc7-a71e-3137-a110-30dc51262eef', '3b205a49-a866-32a0-b391-c727d52b1e79', '7cd38a6c-bb1f-306a-a6c6-00c7f7558432', ]);
示例Channel
对象
以下示例显示了与Channel
对象一起提供的可用公共属性。
object(LangleyFoxall\PressAssociationTvApi\Objects\Channel)#1804 (2) { ["title"]=> string(20) "Sky Sports Action HD" ["images"]=> object(Illuminate\Support\Collection)#1803 (1) { ["items":protected]=> array(1) { [0]=> object(stdClass)#1800 (2) { ["kind"]=> string(12) "picture:logo" ["rendition"]=> object(stdClass)#1801 (3) { ["default"]=> object(stdClass)#1798 (1) { ["href"]=> string(43) "http://tv.static.press.net/logo/p329131.png" } ["transparent-light"]=> object(stdClass)#1794 (1) { ["href"]=> string(50) "http://tv.static.press.net/logo/p2201707181414.png" } ["transparent-dark"]=> object(stdClass)#1795 (1) { ["href"]=> string(50) "http://tv.static.press.net/logo/p1201707181414.png" } } } } } }
时间表
您可以通过调用getScheduleForToday
方法获取今天的节目表,传递频道ID数组。同样,您还可以使用getScheduleForDay
方法获取特定日期的节目表,传递频道ID数组和Carbon
日期对象。
这两个方法都将返回一个Schedule
对象。
您可能希望将此方法调用放在try catch块中,以捕获任何网络异常。
$schedule = $client->getScheduleForToday([ 'da015cc7-a71e-3137-a110-30dc51262eef', '3b205a49-a866-32a0-b391-c727d52b1e79', '7cd38a6c-bb1f-306a-a6c6-00c7f7558432', ]); $tomorrowSchedule = $client->getScheduleForDay([ 'da015cc7-a71e-3137-a110-30dc51262eef', '3b205a49-a866-32a0-b391-c727d52b1e79', '7cd38a6c-bb1f-306a-a6c6-00c7f7558432', ], \Carbon\Carbon::now()->addDay());
然后,您可以调用Schedule
对象的all
方法获取所有时间项目。
$items = $schedule->all();
或者,您可以通过调用Schedule
对象的getByGenre
方法获取按类型筛选的时间项目。此方法接受类型或运动名称,例如足球
、网球
或拳击
。
$items = $schedule->getByGenre('Football');
示例ScheduleItem
对象
以下示例显示了与ScheduleItem
对象一起提供的可用公共属性。
object(LangleyFoxall\PressAssociationTvApi\Objects\ScheduleItem)#1542 (5) { ["title"]=> string(27) "Hockey: China v Netherlands" ["episodeTitle"]=> string(27) "Hockey: China v Netherlands" ["dateTime"]=> object(Carbon\Carbon)#1538 (3) { ["date"]=> string(26) "2018-07-27 23:00:00.000000" ["timezone_type"]=> int(1) ["timezone"]=> string(6) "+00:00" } ["channel"]=> object(LangleyFoxall\PressAssociationTvApi\Objects\Channel)#1533 (2) { ["title"]=> string(10) "BT Sport 2" ["images"]=> object(Illuminate\Support\Collection)#1534 (1) { ["items":protected]=> array(1) { [0]=> object(stdClass)#1531 (2) { ["kind"]=> string(12) "picture:logo" ["rendition"]=> object(stdClass)#1532 (3) { ["default"]=> object(stdClass)#1529 (1) { ["href"]=> string(43) "http://tv.static.press.net/logo/p388708.png" } ["transparent-light"]=> object(stdClass)#1530 (1) { ["href"]=> string(50) "http://tv.static.press.net/logo/p2201805121806.png" } ["transparent-dark"]=> object(stdClass)#1506 (1) { ["href"]=> string(50) "http://tv.static.press.net/logo/p1201805121806.png" } } } } } } ["genres"]=> object(Illuminate\Support\Collection)#1535 (1) { ["items":protected]=> array(1) { [0]=> string(6) "hockey" } } }
限制
此库目前不处理API分页。这不应该是一个问题,因为频道每天通常不会有超过1000个时间项目。