crew labs / unsplash
用于访问 Unsplash API 和图片库的包装器
Requires
- php: >=7.3.0
- guzzlehttp/guzzle: ^6.3.0|^7.0
- hughbertd/oauth2-unsplash: >=1.0.3
- league/oauth2-client: >=1.4.2
Requires (Dev)
- mockery/mockery: ~1.4.0
- php-vcr/php-vcr: ~1.4
- php-vcr/phpunit-testlistener-vcr: ~3.1
- phpunit/phpunit: ~9.0
- vlucas/phpdotenv: ~4.1.4
- dev-master
- 3.2.1
- 3.2.0
- 3.1.0
- 3.0.0
- 2.5.1
- 2.5.0
- 2.4.4
- 2.4.3
- 2.4.2
- 2.4.1
- 2.4.0
- 2.3.4
- 2.3.3
- 2.3.2
- 2.3.1
- 2.3.0
- 2.2.1
- 2.2.0
- 2.1.0
- 2.0.0
- 1.2.0
- 1.1.2
- 1.1.1
- 1.1.0
- 1.0.4
- 1.0.3
- 1.0.2
- 1.0.1
- 1.0.0
- dev-dependabot/composer/guzzlehttp/psr7-1.9.1
- dev-dependabot/composer/guzzlehttp/guzzle-6.5.8
- dev-update-oauth2
- dev-hugh-use-oauth-package-merge
This package is not auto-updated.
Last update: 2024-09-14 18:25:52 UTC
README
Unsplash API 的 PHP 客户端。
快速链接到您可能关心的方法
注意:每个应用程序都必须遵守 API 指南。具体来说,请记住 热点链接图像 和在适当的时候 触发下载。
安装
unsplash-php
使用 Composer。要使用它,请要求库
composer require unsplash/unsplash
用法
配置
在使用之前,请使用您的访问密钥和秘密配置客户端。如果您没有访问密钥和秘密,请按照 Unsplash API 的步骤注册您的应用程序。
注意:如果您只是使用需要 公共权限范围 的操作,则只需要访问密钥。由于历史原因,访问密钥作为 applicationId
输入。
注意:如果从 $credentials 中省略 utmSource,将引发通知。
Unsplash\HttpClient::init([ 'applicationId' => 'YOUR ACCESS KEY', 'secret' => 'YOUR APPLICATION SECRET', 'callbackUrl' => 'https://your-application.com/oauth/callback', 'utmSource' => 'NAME OF YOUR APPLICATION' ]);
用户授权工作流程
如果您需要代表用户访问非公共操作(例如,将照片上传到特定帐户),您需要遵循 用户身份验证工作流程 以访问其数据。
此流程的示例可以在 /examples/oauth-flow.php 中找到
将他们引导到授权 URL(在生成授权 URL 之前配置任何范围)
$scopes = ['public', 'write_user']; Unsplash\HttpClient::$connection->getConnectionUrl($scopes);
授权后,Unsplash 将通过您的 OAuth 回调处理程序返回一个身份验证代码。使用它来生成访问令牌
Unsplash\HttpClient::$connection->generateToken($code);
有了此令牌,您现在可以访问授权用户可用的任何其他非公共操作。
权限范围
由 Unsplash API 定义的当前权限范围是
public
(访问用户的公共数据)read_user
(访问用户的私有数据)write_user
(编辑和创建用户数据)read_photos
(从用户的照片访问私有信息)write_photos
(为用户发布和编辑照片)write_likes
(为用户点赞照片)read_collections
(查看用户的私有收藏)write_collections
(创建和更新用户的收藏)
API 方法
有关每个调用响应的更多信息,请参阅官方文档。
一些参数在所有方法中都是相同的。
注意:返回多个对象的方法返回一个ArrayObject
,它类似于正常的stdClass
。
搜索
照片
根据搜索结果检索单页照片结果。
参数
示例
$search = 'forest'; $page = 3; $per_page = 15; $orientation = 'landscape'; Unsplash\Search::photos($search, $page, $per_page, $orientation);
收藏集
根据搜索结果检索单页收藏集结果。
参数
示例
Unsplash\Search::collections($search, $page, $per_page);
用户
根据搜索结果检索单页用户结果。
参数
示例
Unsplash\Search::users($search, $page, $per_page);
收藏集
检索收藏集列表。
参数
示例
Unsplash\Collection::all($page, $per_page);
Unsplash\Collection::photos($page, $per_page)
从收藏集中检索照片。
注意:首先需要实例化一个收藏集对象。
参数
示例
$collection = Unsplash\Collection::find(integer $id); $photos = $collection->photos($page, $per_page);
Unsplash\Collection::related($page, $per_page)
检索推荐收藏集列表。
注意:必须先实例化一个收藏集。
参数
示例
$collection = Unsplash\Collection::find($id); $collection->related();
Unsplash\Collection::create($title, $description, $private)
代表用户创建收藏集。
注意:需要write_collections
权限范围。
参数
示例
$collection = Unsplash\Collection::create($title);
Unsplash\Collection::update($parameters)
代表用户更新收藏集。
注意:必须先实例化一个收藏集对象。
注意:需要write_collections
权限范围。
参数
参数 | 类型 | 可选/必填 | 备注 ---------------|---------|---------------------- $parameters
| 数组 | 必填 | 可以在数组中设置以下键:title
、description
、private
示例
$collection = Unsplash\Collection::find(int $id); $collection->update(['private' => true])
Unsplash\Collection::destroy()
代表用户删除收藏集。
注意:必须先实例化一个收藏集对象。
注意:需要write_collections
权限范围。
示例
$collection = Unsplash\Collection::find(int $id); $collection->destroy()
Unsplash\Collection::add($photo_id)
代表用户将照片添加到收藏集。
注意:必须先实例化一个收藏集对象。
注意:需要write_collections
权限范围。
参数
示例
$collection = Unsplash\Collection::find(int $id); $collection->add(int $photo_id)
Unsplash\Collection::remove($photo_id)
代表用户从收藏集中删除照片。
注意:必须先实例化一个收藏集对象。
注意:需要write_collections
权限范围。
参数
示例
$collection = Unsplash\Collection::find(int $id); $collection->remove(int $photo_id)
照片
Unsplash\Photo::all($page, $per_page, $order_by)
检索照片列表。
参数
示例
Unsplash\Photo::all($page, $per_page, $order_by);
Unsplash\Photo::find($id)
检索特定照片。
参数
示例
Unsplash\Photo::find($id);
Unsplash\Photo::update($parameters = [])
代表用户发布照片。
注意:需要write_photos
权限范围。您需要先实例化照片对象。
参数
示例
$photo = Unsplash\Photo::find(string $id) $photo->update(array $parameters);
Unsplash\Photo::photographer()
检索照片的摄影师。
注意:您需要先实例化照片对象。
参数
N/A
示例
$photo = Unsplash\Photo::find(string $id); $photo->photographer();
Unsplash\Photo::random([featured => $value, username => $value, query => $value, w => $value, h => $value])
从指定的过滤器中检索随机照片。有关过滤器的更多信息,请参阅官方文档。
注意:需要将数组作为参数传递。
参数
示例
// Or apply some optional filters by passing a key value array of filters $filters = [ 'username' => 'andy_brunner', 'query' => 'coffee', 'w' => 100, 'h' => 100 ]; Unsplash\Photo::random($filters);
Unsplash\Photo::like()
代表用户喜欢照片。
注意:您需要先实例化照片对象。
注意:需要like_photos
权限范围。
参数
N/A
示例
$photo = Unsplash\Photo::find(string $id); $photo->like();
Unsplash\Photo::unlike()
代表用户取消喜欢照片。
注意:您需要先实例化照片对象。
注意:需要like_photos
权限范围。
参数
N/A
示例
$photo = Unsplash\Photo::find(string $id); $photo->unlike();
Unsplash\Photo::statistics(string $resolution, int $quantity)
检索单个照片的总下载次数、查看次数和喜欢次数,以及这些统计数据在特定时间范围内的历史分解(默认为30天)。
注意:必须先实例化照片对象。
参数
示例
$photo = Unsplash\Photo::find($id); $photo->statistics('days', 7);
Unsplash\Photo::download()
触发照片的下载。这是遵循'触发下载' API指南所必需的。
注意:必须先实例化照片对象。
参数
示例
$photo = Unsplash\Photo::find(); $photo->download();
用户
Unsplash\User::find($username)
检索用户信息。
参数
示例
Unsplash\User::find($username)
Unsplash\User::portfolio($username)
检索用户个人作品集链接。
参数
示例
Unsplash\User::portfolio($username)
Unsplash\User::current()
检索用户的私人信息。
注意:需要read_user权限范围。
参数
N/A
示例
$user = Unsplash\User::current();
Unsplash\User::photos($page, $per_page, $order_by)
检索用户的照片。
注意:您需要先实例化用户对象。
参数
示例
$user = Unsplash\User::find($username); $user->photos($page, $per_page);
Unsplash\User::collections($page, $per_page)
检索用户的收藏集。
注意:您需要先实例化用户对象。 注意:检索用户的私人收藏集需要read_collections权限范围。
参数
示例
$user = Unsplash\User::find($username); $user->collections($page, $per_page);
Unsplash\User::likes($page, $per_page, $order_by)
检索用户的收藏集。
注意:您需要先实例化用户对象。
参数
示例
$user = Unsplash\User::find($username); $user->likes($page, $per_page, $order_by);
Unsplash\User::update([$key => value])
更新当前用户的字段。可以传递数组中的多个字段。
注意:您需要先实例化用户对象。
注意:您需要write_user权限范围。
参数
$user = Unsplash\User::current(); $user->update(['first_name' => 'Elliot', 'last_name' => 'Alderson']);
Unsplash\User::statistics(string $resolution, int $quantity)
检索用户的总下载量、观看次数和点赞数,以及这些统计数据的特定时间段的历史分解(默认为30天)。
注意:您必须首先实例化User对象
参数
示例
$user = Unsplash\User::find($id); $user->statistics('days', 7);
贡献
欢迎在GitHub上提交错误报告和拉取请求:https://github.com/unsplash/unsplash-php。本项目旨在成为一个安全、友好的协作空间,并期望贡献者遵守贡献者公约的行为准则。