ByteNoteByteNote

字节笔记本

2026年2月21日

Unsplash OAuth 应用管理完全指南

API中转
¥120

本文介绍 Unsplash OAuth 应用管理后台的功能和使用方法,帮助开发者了解如何配置和管理 Unsplash API 应用程序。

Unsplash OAuth 应用管理概述

Unsplash 是全球知名的免费高质量图片平台,为开发者提供了强大的 API 接口。通过 OAuth 应用管理后台,开发者可以创建、配置和监控自己的应用程序。

应用管理后台功能

1. 应用基本信息管理

在 OAuth 应用管理页面,开发者可以查看和编辑以下信息:

  • 应用名称 - 显示在授权页面的应用标识
  • 应用描述 - 向用户说明应用用途
  • 回调地址 (Redirect URI) - OAuth 授权后的跳转地址
  • 应用图标 - 提升品牌识别度

2. API 密钥管理

每个 OAuth 应用都包含两组密钥:

密钥类型用途安全级别
Access Key公开使用,用于图片请求
Secret Key服务器端使用,用于用户认证

3. 权限范围 (Scopes)

Unsplash OAuth 支持以下权限范围:

  • public - 访问公开照片和用户信息(默认)
  • read_user - 读取用户私人信息
  • write_user - 更新用户信息
  • read_photos - 读取用户照片
  • write_photos - 上传和管理照片
  • write_likes - 点赞/取消点赞照片
  • write_followers - 关注/取消关注用户
  • read_collections - 读取用户收藏集
  • write_collections - 创建和管理收藏集

OAuth 授权流程

第一步:引导用户授权

text
https://unsplash.com/oauth/authorize
  ?client_id=YOUR_ACCESS_KEY
  &redirect_uri=YOUR_REDIRECT_URI
  &response_type=code
  &scope=public+read_user

第二步:获取授权码

用户同意后,Unsplash 会重定向到:

YOUR_REDIRECT_URI?code=AUTHORIZATION_CODE

第三步:换取访问令牌

bash
curl -X POST https://unsplash.com/oauth/token \
  -d "client_id=YOUR_ACCESS_KEY" \
  -d "client_secret=YOUR_SECRET_KEY" \
  -d "redirect_uri=YOUR_REDIRECT_URI" \
  -d "code=AUTHORIZATION_CODE" \
  -d "grant_type=authorization_code"

返回示例:

json
{
  "access_token": "abc123",
  "token_type": "Bearer",
  "scope": "public read_user",
  "created_at": 1234567890
}

API 使用限制

开发模式限制

新创建的应用默认处于开发模式:

  • 每小时 50 次请求
  • 仅用于开发和测试
  • 需要申请生产权限才能正式使用

生产模式

申请生产权限后:

  • 每小时 1000 次请求(默认)
  • 可根据需求申请更高配额
  • 需要遵守 Unsplash API 使用条款

最佳实践

1. 安全存储密钥

javascript
// 使用环境变量存储敏感信息
const config = {
  accessKey: process.env.UNSPLASH_ACCESS_KEY,
  secretKey: process.env.UNSPLASH_SECRET_KEY,
  redirectUri: process.env.UNSPLASH_REDIRECT_URI
};

2. 正确处理回调

javascript
// Express 示例
app.get('/auth/callback', async (req, res) => {
  const { code } = req.query;

  try {
    const response = await fetch('https://unsplash.com/oauth/token', {
      method: 'POST',
      headers: { 'Content-Type': 'application/json' },
      body: JSON.stringify({
        client_id: config.accessKey,
        client_secret: config.secretKey,
        redirect_uri: config.redirectUri,
        code,
        grant_type: 'authorization_code'
      })
    });

    const data = await response.json();
    // 存储 access_token 到 session
    req.session.unsplashToken = data.access_token;
    res.redirect('/dashboard');
  } catch (error) {
    res.status(500).send('授权失败');
  }
});

3. 图片使用规范

使用 Unsplash API 获取的图片必须:

  • 显示摄影师署名
  • 包含 Unsplash 来源链接
  • 遵守 CC0 许可协议
  • 不得用于非法用途

常见问题

Q: 如何申请生产权限?

A: 在应用管理后台提交审核申请,需要提供:

  • 应用演示截图
  • 使用场景说明
  • 预计 API 调用量

Q: 回调地址可以修改吗?

A: 可以,在应用设置中更新 Redirect URI,支持多个回调地址。

Q: 如何监控 API 使用情况?

A: 应用管理后台提供:

  • 实时请求统计
  • 错误率监控
  • 配额使用百分比

相关链接

总结

Unsplash OAuth 应用管理后台为开发者提供了完整的 API 管理能力。通过合理配置权限、遵守使用规范,开发者可以在应用中集成数百万张高质量免费图片,为用户提供丰富的视觉体验。

分享: