vientodigital / vimeo-api
Vimeo API 的官方 PHP 库。
Requires
- php: >=7.1.0
- ext-curl: *
- ext-json: *
- ankitpokhrel/tus-php: ^v1.0.0
Requires (Dev)
- php-coveralls/php-coveralls: ^1.0
- phpunit/phpunit: ^7.4
- vimeo/psalm: ^2.0
README
这是一个修改后以支持 @composer 的官方 Vimeo API PHP 库的分支。
这是一个用于与 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']];
安装
- 请使用 Composer 在项目的根目录中安装此包。
composer require vimeo/vimeo-api
请注意,此库需要至少安装 PHP 7.1。如果您正在使用 PHP 5.6 或 PHP 7.0,请使用以下命令安装包
composer require vimeo/vimeo-api ^2.0
- 使用库
$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']);
已认证
- 创建一个链接到 Vimeo,以便您的用户可以授权您的应用程序。
$url = $lib->buildAuthorizationEndpoint($redirect_uri, $scopes, $state)
-
您的用户需要访问授权端点(可以通过点击链接或通过重定向来实现)。在授权端点,用户将有权拒绝您请求的任何作用域。如果他们拒绝您的应用程序,他们将被重定向回您的
redirect_url
并带有error
参数。 -
如果用户接受您的应用程序,他们将被重定向回您的
redirect_uri
并带有code
和state
查询参数(例如,http://yourredirect.com?code=abc&state=xyz)。- 您必须验证
state
与步骤 1 中的状态相匹配。 - 如果状态有效,您可以使用代码和
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)
故障排除
框架集成
- WordPress - http://vimeography.com/
- Laravel - https://github.com/vimeo/laravel
如果您已将 Vimeo 集成到流行的 PHP 框架中,请告诉我们!
贡献者
要查看贡献者,请访问贡献者图表。