azuracast/php-api-client

为 AzuraCast API 提供的 API 客户端库

2.0.3 2022-03-13 17:27 UTC

README

此 PHP 库为 AzuraCast JSON API 提供了一个 API 客户端。

安装

强烈建议使用 Composer 包管理器,通过运行以下命令来安装此客户端:

composer require azuracast/php-api-client

用法

<?php

require __DIR__ . '/vendor/autoload.php';

$api = \AzuraCast\Api\Client::create(
	'<IP-Address | Host>',
	'<API Key>'
);

$nowPlaying = $api->nowPlaying();

echo $nowPlaying->getCurrentSong()->getSong()->getTitle();

可用的端点

正在播放

GET /nowplaying

$api->nowPlaying();

GET /nowplaying/{station_id}

$api->station($station_id)->nowPlaying();

站点:通用

GET /stations

$api->stations();

GET /station/{station_id}

$api->station($stationId)->get();

站点:歌曲请求

GET /station/{station_id}/requests

$api->station($stationId)->requests()->list();

POST /station/{station_id}/request/{request_id}

$api->station($stationId)->requests()->submit($uniqueId);

站点:服务控制

GET /station/{station_id}/status

$api->station($stationId)->status();

POST /station/{station_id}/restart

$api->station($stationId)->restart();

POST /station/{station_id}/frontend/{action}

$api->station($stationId)->frontend($action);

POST /station/{station_id}/backend/{action}

$api->station($stationId)->backend($action);

站点:历史记录

GET /station/{station_id}/history

$api->station($stationId)->history(?\DateTime $start = null, ?\DateTime $end = null);

站点:听众

GET /station/{station_id}/listeners

$api->station($stationId)->listeners();

站点:媒体

GET /station/{station_id}/art/{media_id}

$api->station($stationId)->media()->art($uniqueId);

GET /station/{station_id}/files

$api->station($stationId)->media()->list();

POST /station/{station_id}/files

$api->station($stationId)->media()->upload(UploadFileDto $uploadFile);

站点:挂载点

GET /station/{station_id}/mounts

$api->station($stationId)->mounts();

站点:播客/DJ

GET /station/{station_id}/streamers

$api->station($stationId)->streamers()->list();

GET /station/{station_id}/streamer/{id}

$api->station($stationId)->streamers()->get(int $streamerId);

POST /station/{station_id}/streamers

$api->station($stationId)->streamers()->create(
	string $username,
	string $password,
	string $displayName,
	string $comments,
	bool $isActive
);

PUT /station/{station_id}/streamer/{id}

$api->station($stationId)->streamers()->update(
	int $streamerId,
	string $username,
	string $password,
	string $displayName,
	string $comments,
	bool $isActive
);

DELETE /station/{station_id}/streamer/{id}

$api->station($stationId)->streamers()->delete($streamerId);

管理:自定义字段

GET /admin/custom_fields

$api->admin()->customFields()->list();

POST /admin/custom_fields

$api->admin()->customFields()->get(int $customFieldId);

GET /admin/custom_fields/{id}

$api->admin()->customFields()->create(string $name, string $shortName);

PUT /admin/custom_fields/{id}

$api->admin()->customFields()->update(int $customFieldId, string $name, string $shortName);

DELETE /admin/custom_fields/{id}

$api->admin()->customFields()->delete(int $customFieldId);

管理:用户

GET /admin/users

$api->admin()->users()->list();

GET /admin/user/{id}

$api->admin()->users()->get(int $userId);

POST /admin/users

$api->admin()->users()->create(
	string $email,
	string $authPassword,
	string $name,
	string $timezone,
	string $locale,
	string $theme,
	array $roles,
	array $apiKeys
);

PUT /admin/user/{id}

$api->admin()->users()->update(
	int $userId,
	string $email,
	string $authPassword,
	string $name,
	string $timezone,
	string $locale,
	string $theme,
	array $roles,
	array $apiKeys
);

DELETE /admin/user/{id}

$api->admin()->users()->delete(int $userId);

管理:角色

GET /admin/permissions

$api->admin()->permissions();

GET /admin/roles

$api->admin()->roles()->list();

GET /admin/role/{id}

$api->admin()->roles()->get(int $roleId);

POST /admin/roles

$api->admin()->roles()->create(
	string $name,
	string[] $permissionsGlobal,
	string[] $permissionsStation
);

PUT /admin/role/{id}

$api->admin()->roles()->update(
	int $roleId
	string $name
	string[] $permissionsGlobal
	string[] $permissionsStation
);

DELETE /admin/role/{id}

$api->admin()->roles()->delete(int $roleId);

管理:设置

GET /admin/settings

$api->admin()->settings()->list();

PUT /admin/settings

$api->admin()->settings()->update(
	string $baseUrl,
	string $instanceName,
	string $timezone,
	bool $preferBrowserUrl,
	bool $useRadioProxy,
	int $historyKeepDays,
	bool $alwaysUseSsl,
	string $apiAccessControl,
	string $analytics,
	bool $centralUpdatesChannel,
	string $publicTheme,
	bool $hideAlbumArt,
	string $homepageRedirectUrl,
	string $defaultAlbumArtUrl,
	bool $hideProductName,
	string $customCssPublic,
	string $customJsPublic,
	string $customCssInternal
);