day4 / blubrry-sdk
Blubrry API版本2的客户端SDK
Requires (Dev)
- squizlabs/php_codesniffer: ^3.5.6
This package is not auto-updated.
Last update: 2024-09-25 10:56:49 UTC
README
该SDK基于Blubrry API版本2,您可以在此处找到文档。
支持的功能
- 媒体托管
- 播客统计
- 社交媒体
安装
Blubrry SDK需要PHP v7.2+才能运行。
use Blubrry\REST\Api
用户认证
Blubrry API具有OAuth2.0认证系统。
为了继续使用该认证系统,您需要实现一些功能以使其工作。第一步是与Blubrry 支持团队联系,并要求他们提供用于使用其API的用户凭据。
之后,您需要在您的网站上添加一个按钮,并将其重定向到如下链接:
https://api.blubrry.com/oauth2/authorize?response_type=code&client_id=$client_id&redirect_uri=$redirect_uri
其中
这将返回如下链接
https://$redirect_uri/code=767a88a9576asdasdasda123123cfd
然后,您将需要检索此用户的刷新令牌
- getRefresh
描述:从Blubrry API获取访问令牌和刷新令牌。
示例请求
<?php $api = new \Blubrry\REST\API(); $code = '767a88a9576asdasdasda123123cfd'; $redirectUri = 'https://google.com/login'; $clientId = '123456789'; $clientSecret = '12d3sa4d56as74d65asd32as1d'; $api->auth($clientId, $clientSecret)->getRefresh($code, $redirectUri);
示例响应
{"access_token":"3b636a92ee50a8f17543f6a531b27e55d525bcd1", "expires_in":3600, "token_type":"bearer", "scope":null, "refresh_token":"55b01e60a74e45b3c66032627dcbc0dddd0bbd6a"}
然后,您将使用access_token
来对其他API端点进行请求。
access_token
的有效期为1小时,您需要将refresh_token
本地保存,并向refreshToken
端点发送请求以获取新的access_token
,而无需用户登录Blubrry账户。
- getNewAccessToken
描述:使用刷新令牌更新访问令牌。
示例请求
<?php $api = new \Blubrry\REST\API(); $clientId = '123456789'; $clientSecret = '12d3sa4d56as74d65asd32as1d'; $refreshToken = '55b01e60a74e45b3c66032627dcbc0dddd0bbd6a'; $api->auth($clientId, $clientSecret)->getNewAccessToken($refreshToken);
示例响应
{"access_token":"3b636a92ee50a8f17543f6a531b27e55d525bcd1", "expires_in":3600, "token_type":"bearer", "scope":null}
端点
- listPrograms
描述:列出Blubrry中的节目。
示例请求
<?php $api = new \Blubrry\REST\API($accessToken); $start = 0; $limit = 100; $api->mediaHosting()->listPrograms($limit, $start);
示例响应
[ { "program_id":"1", "program_title":"Your Program Title", "program_keyword":"somewordhere" } ]
- listUnpublished
描述:列出Blubrry中的未发布媒体。
示例请求
<?php $api = new \Blubrry\REST\API($accessToken); $start = 0; $limit = 100; $programKeyword = "my_program"; $api->mediaHosting()->listUnpublished($programKeyword, $limit, $start);
示例响应
{}
- publishMedia
描述:将媒体发布到Blubrry。
示例请求
<?php $api = new \Blubrry\REST\API($accessToken); $programKeyword = "my_program"; $mediafile = ""; $publish = false; $api->mediaHosting()->publishMedia($programKeyword, $mediafile, $publish);
示例响应
{}
- deleteMedia
描述:从Blubrry删除媒体。
示例请求
<?php $api = new \Blubrry\REST\API($accessToken); $programKeyword = "my_program"; $mediafile = ""; $api->mediaHosting()->deleteMedia($programKeyword, $mediafile);
示例响应
{}
- addMigrateMediaUrl
描述:将媒体URL添加到迁移队列。
示例请求
<?php $api = new \Blubrry\REST\API($accessToken); $programKeyword = 'my_program'; $url = ''; $urls = ['', '']; $api->mediaHosting()->addMigrateMediaUrl($programKeyword, $url, $urls);
示例响应
{"success":"URL(s) added successfully."}
- removeMigrateMediaUrl
描述:从迁移队列中删除媒体URL。
示例请求
<?php $api = new \Blubrry\REST\API($accessToken); $programKeyword = 'my_program'; $url = ''; $urls = ['', '']; $ids = [123, 321, 3444, 3555]; $api->mediaHosting()->removeMigrateMediaUrl($programKeyword, $url, $urls, $ids);
示例响应
{"success":"URL removed successfully."}
- migrateStatus
描述:使上传的媒体文件公开。
示例请求
<?php $api = new \Blubrry\REST\API($accessToken); $programKeyword = 'my_program'; $status = 'queued'; $start = 0; $limit = 100; $ids = [123, 321, 3444, 3555]; $api->mediaHosting()->migrateStatus($programKeyword, $status, $start, $limit, $ids);
示例响应
{}
- uploadMedia
描述:将媒体文件上传到服务器。
示例请求
<?php $api = new \Blubrry\REST\API($accessToken); $programKeyword = 'my_program'; $media_file = ''; $api->mediaHosting()->uploadMedia($programKeyword, $media_file);
示例响应
{}
- summary
描述:获取播客摘要。
示例请求
<?php $api = new \Blubrry\REST\API($accessToken); $programKeyword = 'my_program'; $media_file = ''; $api->podcastStatistics()->summary($programKeyword, $month, $year);
示例响应
{ "stats_url":"http:\/\/stats.blubrry.com", "program_id":"123456", "overall": { "total":null, "unique":null }, "current_month": { "total":null, "unique":null }, "last_month": { "total":null, "unique":null }, "media":[] }
- totals
描述:从特定播客获取总计,仅适用于专业统计账户。注意:start-date
和end-date
范围不能超过45天。
示例请求
<?php $api = new \Blubrry\REST\API($accessToken); $programKeyword = 'my_program'; $start_date = ''; $end_date = ''; $fields = ''; $start = ''; $limit = ; $params = [ 'start-date' => $start_date, 'end-date' => $end_date, 'fields' => $fields, 'start' => $start, 'limit' => $limit, ]; $api->podcastStatistics()->totals($programKeyword, $params);
示例响应
{}
- updateListing
描述:更新社交列表。
示例请求
<?php $api = new \Blubrry\REST\API($accessToken); $programKeyword = 'my_program'; $params = [ 'feed-url' => $feedUrl, 'title' => $title, 'date' => $date, 'guid' => $guid, 'media-url' => $mediaUrl, 'subtitle' => $subtitle, 'duration' => $duration, 'filesize' => $filesize, 'explicit' => $explicit, 'link' => $link, 'image' => $image, ]; $api->social()->updateListing($programKeyword, $params);
示例响应
{}
- getSocial
描述:获取社交选项。
示例请求
<?php $api = new \Blubrry\REST\API($accessToken); $programKeyword = 'my_program'; $params = [ 'twitter' => [ 'podcast-id' => $podcastId, 'post-data' => $postData, 'social-id' => $socialId, 'social-type' => 'twitter', 'social-title' => $socialTitle, 'form-data' => [ 'row-type' => 'HTML', 'row-order' => 1, 'row-arrtibutes' => [ 'content' => '<p>hi</p>', ], ], ], 'youtube' => [ 'podcast-id' => $podcastId, 'post-data' => $postData, 'social-id' => $socialId, 'social-type' => 'youtube', 'social-title' => $socialTitle, 'form-data' => [ 'row-type' => 'HTML', 'row-order' => 1, 'row-arrtibutes' => [ 'content' => '<p>hello</p>', ], ], ], 'facebook' => [ 'podcast-id' => $podcastId, 'post-data' => $postData, 'social-id' => $socialId, 'social-type' => 'facebook', 'social-title' => $socialTitle, 'form-data' => [ 'row-type' => 'HTML', 'row-order' => 1, 'row-arrtibutes' => [ 'content' => '<p>hello</p>', ], ], ], ]; $api->social()->getSocial($programKeyword, $params);
示例响应
{}
- postSocial
描述:发布到社交。
示例请求
<?php $api = new \Blubrry\REST\API($accessToken); $programKeyword = 'my_program'; $body = [ 'podcast-id' => $podcastId, 'post-data' => $postData, 'social-id' => $socialId, 'social-type' => 'twitter', 'social-data' => [ 'title-123456' => 'My awesome title for twitter', ], ]; $api->social()->postSocial($programKeyword, $body);
示例响应
{}
授权协议
此SDK是开源的,在GitHub上有一个公共存储库。