API 密钥
管理 API 密钥以安全访问 LikeDo 开放接口
概述
API 密钥是您访问 LikeDo 开放 API 端点的凭证。它们提供安全的程序化访问,让您无需交互式登录即可创建和管理短链接、电子邮件地址和其他资源。
为什么使用 API 密钥?
- 自动化: 将 LikeDo 服务集成到您的应用程序和工作流程中
- 安全性: 每个密钥都有自己的速率限制,可以独立撤销
- 灵活性: 为不同的应用程序或环境创建多个密钥
- 控制: 通过控制面板监控使用情况并管理访问权限
创建 API 密钥
步骤 1: 进入设置
- 登录您的 LikeDo 账户
- 前往 控制面板 > 设置 > API 密钥
- 点击 创建 按钮
步骤 2: 配置密钥
创建新的 API 密钥时,您需要配置以下设置:
密钥名称
用于帮助识别密钥用途的描述性名称。
- 示例: "生产环境 API 密钥"、"开发环境"、"移动应用"
- 长度: 1-50 个字符
- 用途: 帮助您管理多个密钥
过期时间
设置密钥保持有效的时长。
- 范围: 1-365 天
- 默认值: 90 天
- 建议: 使用较短的时间以增强安全性
速率限制
控制每个时间窗口允许的请求数量。
免费计划:
- 最大值: 每小时 200 个请求
- 默认: 启用计划限制
Pro/终身计划:
- 最大值: 每小时 2000 个请求
- 可自定义: 根据您的需求调整
步骤 3: 保存密钥
创建 API 密钥后:
- 立即复制密钥 - 它只会显示一次
- 安全存储(密码管理器、环境变量或密钥保管库)
- 切勿将密钥提交到版本控制或公开共享
身份验证
使用 API 密钥对 API 请求进行身份验证有两种方式:
方式 1: Authorization 请求头(推荐)
将密钥作为 Bearer token 包含在 Authorization 请求头中:
Authorization: Bearer YOUR_API_KEY示例:
curl -X POST https://like.do/api/v1/links/create \
-H "Authorization: Bearer sk_live_abc123..." \
-H "Content-Type: application/json" \
-d '{"slug": "example", "targetUrl": "https://example.com"}'方式 2: 查询参数
将密钥作为 URL 查询参数传递:
?key=YOUR_API_KEY示例:
curl -X POST "https://like.do/api/v1/links/create?key=sk_live_abc123..." \
-H "Content-Type: application/json" \
-d '{"slug": "example", "targetUrl": "https://example.com"}'速率限制
速率限制保护我们的 API 基础设施,并确保所有用户的公平使用。限制基于您的订阅级别:
速率限制级别
| 计划 | 请求数/分钟 | 请求数/小时 | 时间窗口 |
|---|---|---|---|
| 免费 | 60 | 200 | 1 小时 |
| Pro | 500 | 2000 | 1 小时 |
| 终身 | 500 | 2000 | 1 小时 |
速率限制响应头
每个 API 响应都在响应头中包含速率限制信息:
X-RateLimit-Limit: 2000
X-RateLimit-Remaining: 1995
X-RateLimit-Reset: 1702123456- X-RateLimit-Limit: 每小时允许的总请求数
- X-RateLimit-Remaining: 当前窗口中剩余的请求数
- X-RateLimit-Reset: 限制重置时的 Unix 时间戳
处理速率限制
当您超出速率限制时,API 返回 429 Too Many Requests 响应:
{
"success": false,
"error": "Rate limit exceeded. Please try again later."
}最佳实践:
- 监控速率限制响应头
- 实施指数退避重试
- 尽可能缓存响应
- 升级到 Pro 以获得更高限制
管理 API 密钥
查看密钥
前往 设置 > API 密钥 查看所有活动密钥。每个密钥显示:
- 名称: 描述性标识符
- 创建时间: 创建时间戳
- 过期时间: 过期日期(如果已设置)
- 最后使用: 最近 API 调用时间戳
- 速率限制: 当前速率限制配置
密钥信息显示
密钥名称: 生产环境 API 密钥
创建时间: 2026-12-07 10:30:00
过期时间: 2026-03-07 10:30:00
最后使用: 2026-12-07 15:45:00
速率限制: 每 1 小时 2000 个请求删除密钥
撤销访问权限:
- 点击密钥旁边的删除图标(垃圾桶)
- 在对话框中确认删除
- 密钥立即失效
警告: 使用已删除密钥的应用程序将立即收到 401 Unauthorized 错误。
安全最佳实践
1. 保密密钥
- 切勿将 API 密钥提交到版本控制系统(Git、SVN 等)
- 不要在公共论坛、聊天或电子邮件中共享密钥
- 避免在源代码中硬编码密钥
- 不要在客户端 JavaScript 中暴露密钥
2. 使用环境变量
将密钥存储在环境变量或安全配置中:
.env 文件:
LIKEDO_API_KEY=sk_live_abc123...在代码中使用:
const apiKey = process.env.LIKEDO_API_KEY;3. 定期轮换密钥
- 定期创建新密钥(建议每 90 天)
- 使用新密钥更新您的应用程序
- 迁移后删除旧密钥
4. 为不同环境使用不同密钥
为每个环境使用单独的密钥:
- 开发环境:
dev_key_xyz... - 预发布环境:
staging_key_abc... - 生产环境:
prod_key_123...
5. 监控使用情况
- 定期检查"最后使用"时间戳
- 立即删除未使用的密钥
- 审查 API 日志以查找可疑活动
6. 限制密钥权限
- 为不同的应用程序创建单独的密钥
- 为每个用例使用适当的速率限制
- 不再需要时撤销密钥
代码示例
JavaScript/TypeScript
// 使用 Authorization 请求头的 fetch
async function createShortLink(data) {
const response = await fetch('https://like.do/api/v1/links/create', {
method: 'POST',
headers: {
'Authorization': `Bearer ${process.env.LIKEDO_API_KEY}`,
'Content-Type': 'application/json',
},
body: JSON.stringify(data),
});
if (!response.ok) {
const error = await response.json();
throw new Error(error.error || 'Request failed');
}
return response.json();
}
// 使用示例
try {
const result = await createShortLink({
slug: 'my-link',
targetUrl: 'https://example.com',
});
console.log('链接已创建:', result.data);
} catch (error) {
console.error('错误:', error.message);
}Python
import os
import requests
def create_short_link(data):
"""使用 API 密钥创建短链接"""
api_key = os.environ.get('LIKEDO_API_KEY')
headers = {
'Authorization': f'Bearer {api_key}',
'Content-Type': 'application/json',
}
response = requests.post(
'https://like.do/api/v1/links/create',
headers=headers,
json=data
)
response.raise_for_status()
return response.json()
# 使用示例
try:
result = create_short_link({
'slug': 'my-link',
'targetUrl': 'https://example.com',
})
print('链接已创建:', result['data'])
except requests.exceptions.HTTPError as error:
print('错误:', error.response.json()['error'])cURL
#!/bin/bash
# 在环境变量中存储 API 密钥
export LIKEDO_API_KEY="sk_live_abc123..."
# 创建短链接
curl -X POST https://like.do/api/v1/links/create \
-H "Authorization: Bearer $LIKEDO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"slug": "my-link",
"targetUrl": "https://example.com"
}'PHP
<?php
function createShortLink($data) {
$apiKey = getenv('LIKEDO_API_KEY');
$ch = curl_init('https://like.do/api/v1/links/create');
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . $apiKey,
'Content-Type: application/json',
],
CURLOPT_POSTFIELDS => json_encode($data),
]);
$response = curl_exec($ch);
$statusCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($statusCode !== 200 && $statusCode !== 201) {
throw new Exception('请求失败: ' . $response);
}
return json_decode($response, true);
}
// 使用示例
try {
$result = createShortLink([
'slug' => 'my-link',
'targetUrl' => 'https://example.com',
]);
echo '链接已创建: ' . $result['data']['shortUrl'];
} catch (Exception $e) {
echo '错误: ' . $e->getMessage();
}错误响应
缺少 API 密钥 (401)
{
"success": false,
"error": "Missing API key. Provide it via Authorization header (Bearer token) or ?key= query parameter"
}无效的 API 密钥 (401)
{
"success": false,
"error": "Invalid or expired API key"
}超出速率限制 (429)
{
"success": false,
"error": "Rate limit exceeded. Please try again later."
}故障排查
API 密钥无法使用
- 检查过期时间: 过期的密钥返回 401 错误
- 验证格式: 确保没有额外的空格或换行符
- 检查删除状态: 密钥可能已被删除
- 审查请求头: 确认 Authorization 请求头格式正确
速率限制问题
- 监控响应头: 检查 X-RateLimit-Remaining
- 实施退避: 重试前等待
- 优化请求: 缓存响应、批量操作
- 升级计划: Pro 计划提供 10 倍更高的限制
最后使用时间未更新
- 可能会有几分钟的延迟
- 只有成功的请求才会更新时间戳
- 检查请求是否到达 API
升级以获得更高限制
免费计划用户限制为每小时 200 个请求。升级到 Pro 可获得:
- 10 倍更高的速率限制: 每小时 2000 个请求
- 更多灵活性: 自定义速率限制配置
- 高级域名: 访问专属域名
- 优先支持: 更快的响应时间
相关资源
支持
需要 API 密钥方面的帮助?
下一步:
LikeDo文档