day4/blubrry-sdk

Blubrry API版本2的客户端SDK

2.0.0 2020-10-12 17:49 UTC

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-dateend-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上有一个公共存储库