vientodigital/vimeo-api

Vimeo API 的官方 PHP 库。

3.0.7 2020-07-23 21:41 UTC

README

这是一个修改后以支持 @composer 的官方 Vimeo API PHP 库的分支。

Packagist License Travis CI StyleCI

这是一个用于与 Vimeo API 交互的简单 PHP 库。

开始使用 Vimeo API

有关 Vimeo API 的信息很多,可以在 https://developer.vimeo.com/api/start 找到。大部分问题都可以在那里找到答案!

直接帮助

注意:如何使用 PHP 库与 Vimeo 点符号文档。

API 文档通常使用点符号来表示数据层次结构,例如:privacy.view。由于这个库使用 JSON 发送所有数据,因此您必须使用嵌套关联数组,而不是点符号。

// The documentation refers to the following as `privacy.view`
$params = ['privacy' => ['view' => 'disable']];

安装

  1. 请使用 Composer 在项目的根目录中安装此包。
composer require vimeo/vimeo-api

请注意,此库需要至少安装 PHP 7.1。如果您正在使用 PHP 5.6 或 PHP 7.0,请使用以下命令安装包

composer require vimeo/vimeo-api ^2.0
  1. 使用库 $lib = new \Vimeo\Vimeo($client_id, $client_secret)

用法

生成您的访问令牌

所有请求都需要访问令牌。有两种类型的访问令牌

  • 未认证 - 不包含用户的访问令牌。这些令牌只能查看公共数据。
  • 已认证 - 包含用户的访问令牌。这些令牌代表已认证用户进行交互。

未认证

未认证的 API 请求必须生成一个访问令牌。您不应为每个请求生成新的访问令牌。相反,请求一个访问令牌一次,并永远使用它。

// `scope` is an array of permissions your token needs to access.
// You can read more at https://developer.vimeo.com/api/authentication#supported-scopes
$token = $lib->clientCredentials(scope);

// usable access token
var_dump($token['body']['access_token']);

// accepted scopes
var_dump($token['body']['scope']);

// use the token
$lib->setToken($token['body']['access_token']);

已认证

  1. 创建一个链接到 Vimeo,以便您的用户可以授权您的应用程序。
$url = $lib->buildAuthorizationEndpoint($redirect_uri, $scopes, $state)
  1. 您的用户需要访问授权端点(可以通过点击链接或通过重定向来实现)。在授权端点,用户将有权拒绝您请求的任何作用域。如果他们拒绝您的应用程序,他们将被重定向回您的 redirect_url 并带有 error 参数。

  2. 如果用户接受您的应用程序,他们将被重定向回您的 redirect_uri 并带有 codestate 查询参数(例如,http://yourredirect.com?code=abc&state=xyz)。

    1. 您必须验证 state 与步骤 1 中的状态相匹配。
    2. 如果状态有效,您可以使用代码和 redirect_uri 交换访问令牌。
// `redirect_uri` must be provided, and must match your configured URI
$token = $lib->accessToken(code, redirect_uri);

// Usable access token
var_dump($token['body']['access_token']);

// Accepted scopes
var_dump($token['body']['scope']);

// Set the token
$lib->setToken($token['body']['access_token']);

有关更多信息,请查看 示例

发起请求

API 库有一个 request 方法,它接受三个参数。它返回一个包含所有相关请求信息的关联数组。

用法

$response = $lib->request('/me/videos', ['per_page' => 2], 'GET');

响应

响应数组包含三个键。

$response = $lib->request('/me/videos', ['per_page' => 2], 'GET');
var_dump($response['body']);

上传视频

从服务器上传视频

要上传视频,您必须调用 upload 方法。它接受两个参数。它返回新视频的 URI。

内部,该库执行 tus 上传方法,并使用 tus 上传协议将文件发送到服务器。

有关更多信息,请查看示例

$response = $lib->upload('/home/aaron/Downloads/ada.mp4')

// With parameters.
$response = $lib->upload('/home/aaron/Downloads/ada.mp4', [
    'name' => 'Ada',
    'privacy' => [
        'view' => 'anybody'
    ]
])

替换服务器上的视频

要替换视频的源文件,您必须调用 replace 方法。它接受两个参数。它返回替换视频的 URI。

$response = $lib->replace('/videos/12345', '/home/aaron/Downloads/ada-v2.mp4')

从客户端上传或替换视频

要从客户端上传,您必须混合一些服务器端和客户端 API 请求。我们支持两种工作流程,其中第一种比第二种更容易。

简单的 POST 上传

此工作流程在 Vimeo 开发者网站上已有很好的文档说明。您可以在此处了解更多信息:https://developer.vimeo.com/api/upload/videos#simple-upload

流式上传

流式上传支持进度条和可恢复上传。如果您想在客户端执行这些上传,则需要从一些服务器端请求开始。

首先阅读Vimeo 文档。步骤 1 和 4 应在服务器上执行,而步骤 2 和 3 可以在客户端执行。使用此工作流程,视频永远不会传输到您的服务器。

从 URL 上传视频

从公开 URL(也称为“拉取上传”)上传视频使用单个简单的 API 调用。

$video_response = $lib->request(
    '/me/videos',
    [
        'upload' => [
            'approach' => 'pull',
            'link' => $url
        ],
    ],
    'POST'
);

上传图片

要上传图片,请调用 uploadImage 方法。它需要三个参数。

有关更多信息,请查看示例

$response = $lib->uploadImage('/videos/12345/pictures', '/home/aaron/Downloads/ada.png', true)

故障排除

如果您有任何问题或问题,请创建票据联系我们

框架集成

如果您已将 Vimeo 集成到流行的 PHP 框架中,请告诉我们!

贡献者

要查看贡献者,请访问贡献者图表