pinterest-api
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChinesePinterest API Skill
Pinterest API 开发技能
Comprehensive assistance with Pinterest API v5 development, including OAuth authentication, pin/board management, analytics, and API integration patterns.
为Pinterest API v5开发提供全面支持,包括OAuth认证、Pin/Board管理、分析功能以及API集成模式。
When to Use This Skill
何时使用本技能
This skill should be triggered when:
- Implementing Pinterest OAuth 2.0 authentication flows
- Creating, updating, or managing Pins and Boards via API
- Integrating Pinterest analytics and metrics into applications
- Building Pinterest API clients or SDKs
- Working with Pinterest user account data
- Debugging Pinterest API requests or responses
- Implementing Pinterest sharing features in web/mobile apps
- Setting up Pinterest business account integrations
- Working with Pinterest ad account APIs
在以下场景可使用本技能:
- 实现Pinterest OAuth 2.0认证流程
- 通过API创建、更新或管理Pin和Board
- 在应用中集成Pinterest分析指标
- 构建Pinterest API客户端或SDK
- 处理Pinterest用户账户数据
- 调试Pinterest API请求或响应
- 在Web/移动应用中实现Pinterest分享功能
- 搭建Pinterest商业账户集成
- 使用Pinterest广告账户API
Key Concepts
核心概念
Pinterest API v5 Overview
Pinterest API v5 概述
- Base URL:
https://api.pinterest.com/v5/ - Authentication: OAuth 2.0 with access tokens
- Rate Limiting: Token-based rate limits (varies by endpoint)
- Response Format: JSON
- Required Headers:
Authorization: Bearer {access_token}
- 基础URL:
https://api.pinterest.com/v5/ - 认证方式:基于访问令牌的OAuth 2.0
- 速率限制:基于令牌的请求限制(各端点限制不同)
- 响应格式:JSON
- 必填请求头:
Authorization: Bearer {access_token}
Core Resources
核心资源
- Pins: Individual pieces of content (images, videos) saved to Pinterest
- Boards: Collections that organize Pins by theme or topic
- Sections: Subsections within Boards for additional organization
- User Account: Pinterest user profile and account information
- Ad Accounts: Business accounts for advertising functionality
- Pin:保存到Pinterest的单个内容(图片、视频)
- Board:按主题分类的Pin集合
- Section:Board内的子分类,用于更细致的内容组织
- 用户账户:Pinterest用户的个人资料及账户信息
- 广告账户:用于广告功能的商业账户
Access Levels
访问权限等级
- Public Access: Read-only access to public data
- User Authorization: Full access to user's Pins, Boards, and account
- Business Access: Additional analytics and ad account management (requires appropriate roles)
- 公开访问:对公开数据的只读权限
- 用户授权:对用户的Pin、Board及账户的完全访问权限
- 商业访问:额外的分析和广告账户管理权限(需对应角色)
Quick Reference
快速参考
OAuth 2.0 Authentication Flow
OAuth 2.0 认证流程
Step 1: Generate Authorization URL
步骤1:生成授权URL
javascript
// Redirect user to Pinterest authorization page
const authUrl = `https://www.pinterest.com/oauth/?client_id={CLIENT_ID}&redirect_uri={REDIRECT_URI}&response_type=code&scope=boards:read,pins:read,user_accounts:read`;
window.location.href = authUrl;javascript
// Redirect user to Pinterest authorization page
const authUrl = `https://www.pinterest.com/oauth/?client_id={CLIENT_ID}&redirect_uri={REDIRECT_URI}&response_type=code&scope=boards:read,pins:read,user_accounts:read`;
window.location.href = authUrl;Step 2: Exchange Code for Access Token
步骤2:用授权码交换访问令牌
bash
undefinedbash
undefinedAfter user authorizes, exchange authorization code for access token
After user authorizes, exchange authorization code for access token
curl -X POST https://api.pinterest.com/v5/oauth/token
--header "Authorization: Basic {BASE64_ENCODED_CLIENT_CREDENTIALS}"
--header "Content-Type: application/x-www-form-urlencoded"
--data-urlencode "grant_type=authorization_code"
--data-urlencode "code={AUTHORIZATION_CODE}"
--data-urlencode "redirect_uri={REDIRECT_URI}"
--header "Authorization: Basic {BASE64_ENCODED_CLIENT_CREDENTIALS}"
--header "Content-Type: application/x-www-form-urlencoded"
--data-urlencode "grant_type=authorization_code"
--data-urlencode "code={AUTHORIZATION_CODE}"
--data-urlencode "redirect_uri={REDIRECT_URI}"
**Base64 Encoding Client Credentials:**
```bashcurl -X POST https://api.pinterest.com/v5/oauth/token
--header "Authorization: Basic {BASE64_ENCODED_CLIENT_CREDENTIALS}"
--header "Content-Type: application/x-www-form-urlencoded"
--data-urlencode "grant_type=authorization_code"
--data-urlencode "code={AUTHORIZATION_CODE}"
--data-urlencode "redirect_uri={REDIRECT_URI}"
--header "Authorization: Basic {BASE64_ENCODED_CLIENT_CREDENTIALS}"
--header "Content-Type: application/x-www-form-urlencoded"
--data-urlencode "grant_type=authorization_code"
--data-urlencode "code={AUTHORIZATION_CODE}"
--data-urlencode "redirect_uri={REDIRECT_URI}"
**Base64编码客户端凭证:**
```bashEncode client_id:client_secret
Encode client_id:client_secret
echo -n "your_client_id:your_client_secret" | base64
**Response:**
```json
{
"access_token": "pina_ABC123...",
"token_type": "bearer",
"expires_in": 2592000,
"refresh_token": "DEF456...",
"scope": "boards:read,pins:read,user_accounts:read"
}echo -n "your_client_id:your_client_secret" | base64
**响应示例:**
```json
{
"access_token": "pina_ABC123...",
"token_type": "bearer",
"expires_in": 2592000,
"refresh_token": "DEF456...",
"scope": "boards:read,pins:read,user_accounts:read"
}Pin Management
Pin 管理
Create a Pin
创建Pin
bash
curl -X POST https://api.pinterest.com/v5/pins \
-H "Authorization: Bearer {ACCESS_TOKEN}" \
-H "Content-Type: application/json" \
-d '{
"link": "https://example.com/my-article",
"title": "My Amazing Pin Title",
"description": "Detailed description of the pin content",
"board_id": "123456789",
"media_source": {
"source_type": "image_url",
"url": "https://example.com/image.jpg"
}
}'bash
curl -X POST https://api.pinterest.com/v5/pins \
-H "Authorization: Bearer {ACCESS_TOKEN}" \
-H "Content-Type: application/json" \
-d '{
"link": "https://example.com/my-article",
"title": "My Amazing Pin Title",
"description": "Detailed description of the pin content",
"board_id": "123456789",
"media_source": {
"source_type": "image_url",
"url": "https://example.com/image.jpg"
}
}'Get Pin Details
获取Pin详情
bash
curl -X GET https://api.pinterest.com/v5/pins/{PIN_ID} \
-H "Authorization: Bearer {ACCESS_TOKEN}"Response:
json
{
"id": "987654321",
"created_at": "2025-01-15T10:30:00",
"link": "https://example.com/my-article",
"title": "My Amazing Pin Title",
"description": "Detailed description of the pin content",
"board_id": "123456789",
"media": {
"media_type": "image",
"images": {
"150x150": { "url": "...", "width": 150, "height": 150 },
"400x300": { "url": "...", "width": 400, "height": 300 },
"originals": { "url": "...", "width": 1200, "height": 800 }
}
}
}bash
curl -X GET https://api.pinterest.com/v5/pins/{PIN_ID} \
-H "Authorization: Bearer {ACCESS_TOKEN}"响应示例:
json
{
"id": "987654321",
"created_at": "2025-01-15T10:30:00",
"link": "https://example.com/my-article",
"title": "My Amazing Pin Title",
"description": "Detailed description of the pin content",
"board_id": "123456789",
"media": {
"media_type": "image",
"images": {
"150x150": { "url": "...", "width": 150, "height": 150 },
"400x300": { "url": "...", "width": 400, "height": 300 },
"originals": { "url": "...", "width": 1200, "height": 800 }
}
}
}Update a Pin
更新Pin
bash
curl -X PATCH https://api.pinterest.com/v5/pins/{PIN_ID} \
-H "Authorization: Bearer {ACCESS_TOKEN}" \
-H "Content-Type: application/json" \
-d '{
"title": "Updated Pin Title",
"description": "Updated description",
"link": "https://example.com/updated-link"
}'bash
curl -X PATCH https://api.pinterest.com/v5/pins/{PIN_ID} \
-H "Authorization: Bearer {ACCESS_TOKEN}" \
-H "Content-Type: application/json" \
-d '{
"title": "Updated Pin Title",
"description": "Updated description",
"link": "https://example.com/updated-link"
}'Delete a Pin
删除Pin
bash
curl -X DELETE https://api.pinterest.com/v5/pins/{PIN_ID} \
-H "Authorization: Bearer {ACCESS_TOKEN}"bash
curl -X DELETE https://api.pinterest.com/v5/pins/{PIN_ID} \
-H "Authorization: Bearer {ACCESS_TOKEN}"Board Management
Board 管理
Create a Board
创建Board
bash
curl -X POST https://api.pinterest.com/v5/boards \
-H "Authorization: Bearer {ACCESS_TOKEN}" \
-H "Content-Type: application/json" \
-d '{
"name": "My New Board",
"description": "A collection of my favorite ideas",
"privacy": "PUBLIC"
}'Privacy Options: , ,
PUBLICPROTECTEDSECRETbash
curl -X POST https://api.pinterest.com/v5/boards \
-H "Authorization: Bearer {ACCESS_TOKEN}" \
-H "Content-Type: application/json" \
-d '{
"name": "My New Board",
"description": "A collection of my favorite ideas",
"privacy": "PUBLIC"
}'隐私选项:、、
PUBLICPROTECTEDSECRETList User's Boards
列出用户的Board
bash
curl -X GET https://api.pinterest.com/v5/boards \
-H "Authorization: Bearer {ACCESS_TOKEN}"bash
curl -X GET https://api.pinterest.com/v5/boards \
-H "Authorization: Bearer {ACCESS_TOKEN}"Get Board Pins
获取Board中的Pin
bash
curl -X GET https://api.pinterest.com/v5/boards/{BOARD_ID}/pins \
-H "Authorization: Bearer {ACCESS_TOKEN}"bash
curl -X GET https://api.pinterest.com/v5/boards/{BOARD_ID}/pins \
-H "Authorization: Bearer {ACCESS_TOKEN}"User Account
用户账户
Get Current User Account
获取当前用户账户信息
bash
curl -X GET https://api.pinterest.com/v5/user_account \
-H "Authorization: Bearer {ACCESS_TOKEN}"Response:
json
{
"account_type": "BUSINESS",
"id": "123456789",
"username": "myusername",
"website_url": "https://example.com",
"profile_image": "https://i.pinimg.com/...",
"follower_count": 1500,
"following_count": 320,
"board_count": 25,
"pin_count": 450
}bash
curl -X GET https://api.pinterest.com/v5/user_account \
-H "Authorization: Bearer {ACCESS_TOKEN}"响应示例:
json
{
"account_type": "BUSINESS",
"id": "123456789",
"username": "myusername",
"website_url": "https://example.com",
"profile_image": "https://i.pinimg.com/...",
"follower_count": 1500,
"following_count": 320,
"board_count": 25,
"pin_count": 450
}Analytics
分析功能
Get Pin Analytics
获取Pin分析数据
bash
curl -X GET "https://api.pinterest.com/v5/pins/{PIN_ID}/analytics?start_date=2025-01-01&end_date=2025-01-31&metric_types=IMPRESSION,SAVE,PIN_CLICK" \
-H "Authorization: Bearer {ACCESS_TOKEN}"Available Metrics:
- - Number of times pin was shown
IMPRESSION - - Number of times pin was saved
SAVE - - Number of clicks to pin destination
PIN_CLICK - - Clicks to external website
OUTBOUND_CLICK - - Video plays started
VIDEO_START
Response:
json
{
"all": {
"daily_metrics": [
{
"date": "2025-01-01",
"data_status": "READY",
"metrics": {
"IMPRESSION": 1250,
"SAVE": 45,
"PIN_CLICK": 89
}
}
]
}
}bash
curl -X GET "https://api.pinterest.com/v5/pins/{PIN_ID}/analytics?start_date=2025-01-01&end_date=2025-01-31&metric_types=IMPRESSION,SAVE,PIN_CLICK" \
-H "Authorization: Bearer {ACCESS_TOKEN}"可用指标:
- - Pin的展示次数
IMPRESSION - - Pin的保存次数
SAVE - - 点击Pin的次数
PIN_CLICK - - 点击跳转到外部网站的次数
OUTBOUND_CLICK - - 视频播放启动次数
VIDEO_START
响应示例:
json
{
"all": {
"daily_metrics": [
{
"date": "2025-01-01",
"data_status": "READY",
"metrics": {
"IMPRESSION": 1250,
"SAVE": 45,
"PIN_CLICK": 89
}
}
]
}
}Error Handling
错误处理
Common Error Response
常见错误响应
json
{
"code": 3,
"message": "Requested pin not found"
}Common Error Codes:
- - Invalid request parameters
1 - - Rate limit exceeded
2 - - Resource not found
3 - - Insufficient permissions
4 - - Invalid access token
8
json
{
"code": 3,
"message": "Requested pin not found"
}常见错误码:
- - 请求参数无效
1 - - 超出速率限制
2 - - 资源未找到
3 - - 权限不足
4 - - 访问令牌无效
8
Python Error Handling Example
Python错误处理示例
python
import requests
def create_pin(access_token, board_id, title, image_url):
url = "https://api.pinterest.com/v5/pins"
headers = {
"Authorization": f"Bearer {access_token}",
"Content-Type": "application/json"
}
data = {
"board_id": board_id,
"title": title,
"media_source": {
"source_type": "image_url",
"url": image_url
}
}
try:
response = requests.post(url, headers=headers, json=data)
response.raise_for_status()
return response.json()
except requests.exceptions.HTTPError as e:
error_data = e.response.json()
print(f"Error {error_data.get('code')}: {error_data.get('message')}")
return None
except requests.exceptions.RequestException as e:
print(f"Request failed: {str(e)}")
return Nonepython
import requests
def create_pin(access_token, board_id, title, image_url):
url = "https://api.pinterest.com/v5/pins"
headers = {
"Authorization": f"Bearer {access_token}",
"Content-Type": "application/json"
}
data = {
"board_id": board_id,
"title": title,
"media_source": {
"source_type": "image_url",
"url": image_url
}
}
try:
response = requests.post(url, headers=headers, json=data)
response.raise_for_status()
return response.json()
except requests.exceptions.HTTPError as e:
error_data = e.response.json()
print(f"Error {error_data.get('code')}: {error_data.get('message')}")
return None
except requests.exceptions.RequestException as e:
print(f"Request failed: {str(e)}")
return NoneJavaScript/Node.js Integration
JavaScript/Node.js 集成示例
javascript
// Pinterest API Client Example
class PinterestClient {
constructor(accessToken) {
this.accessToken = accessToken;
this.baseUrl = 'https://api.pinterest.com/v5';
}
async request(endpoint, options = {}) {
const url = `${this.baseUrl}${endpoint}`;
const headers = {
'Authorization': `Bearer ${this.accessToken}`,
'Content-Type': 'application/json',
...options.headers
};
const response = await fetch(url, {
...options,
headers
});
if (!response.ok) {
const error = await response.json();
throw new Error(`Pinterest API Error: ${error.message}`);
}
return response.json();
}
async createPin(boardId, title, imageUrl, description = '', link = '') {
return this.request('/pins', {
method: 'POST',
body: JSON.stringify({
board_id: boardId,
title: title,
description: description,
link: link,
media_source: {
source_type: 'image_url',
url: imageUrl
}
})
});
}
async getUserBoards() {
return this.request('/boards');
}
async getPinAnalytics(pinId, startDate, endDate) {
const params = new URLSearchParams({
start_date: startDate,
end_date: endDate,
metric_types: 'IMPRESSION,SAVE,PIN_CLICK'
});
return this.request(`/pins/${pinId}/analytics?${params}`);
}
}
// Usage
const client = new PinterestClient('your_access_token');
const pin = await client.createPin('board_id', 'Pin Title', 'https://example.com/image.jpg');javascript
// Pinterest API Client Example
class PinterestClient {
constructor(accessToken) {
this.accessToken = accessToken;
this.baseUrl = 'https://api.pinterest.com/v5';
}
async request(endpoint, options = {}) {
const url = `${this.baseUrl}${endpoint}`;
const headers = {
'Authorization': `Bearer ${this.accessToken}`,
'Content-Type': 'application/json',
...options.headers
};
const response = await fetch(url, {
...options,
headers
});
if (!response.ok) {
const error = await response.json();
throw new Error(`Pinterest API Error: ${error.message}`);
}
return response.json();
}
async createPin(boardId, title, imageUrl, description = '', link = '') {
return this.request('/pins', {
method: 'POST',
body: JSON.stringify({
board_id: boardId,
title: title,
description: description,
link: link,
media_source: {
source_type: 'image_url',
url: imageUrl
}
})
});
}
async getUserBoards() {
return this.request('/boards');
}
async getPinAnalytics(pinId, startDate, endDate) {
const params = new URLSearchParams({
start_date: startDate,
end_date: endDate,
metric_types: 'IMPRESSION,SAVE,PIN_CLICK'
});
return this.request(`/pins/${pinId}/analytics?${params}`);
}
}
// Usage
const client = new PinterestClient('your_access_token');
const pin = await client.createPin('board_id', 'Pin Title', 'https://example.com/image.jpg');Reference Files
参考文档
This skill includes comprehensive documentation in :
references/- api.md - Complete Pinterest API v5 endpoint reference extracted from official documentation
Use to read reference files when detailed information about specific endpoints is needed.
view本技能在目录下包含完整文档:
references/- api.md - 从官方文档提取的Pinterest API v5完整端点参考
当需要特定端点的详细信息时,使用命令查看参考文档。
viewWorking with This Skill
使用本技能的指南
For Beginners
初学者指南
- Start by understanding OAuth 2.0 authentication flow (see Quick Reference above)
- Get your API credentials from Pinterest Developer Portal
- Test authentication with curl commands before implementing in your application
- Use the provided Python/JavaScript examples as starting templates
- 先理解OAuth 2.0认证流程(见上方快速参考)
- 从Pinterest开发者平台获取API凭证
- 在应用中实现前,先用curl命令测试认证流程
- 以提供的Python/JavaScript示例为基础模板进行开发
For API Integration
API集成指南
- Implement OAuth flow to obtain access tokens
- Store refresh tokens securely for long-term access
- Use the Pin/Board management examples for CRUD operations
- Implement proper error handling for rate limits and API errors
- 实现OAuth流程以获取访问令牌
- 安全存储刷新令牌以实现长期访问
- 使用Pin/Board管理示例实现CRUD操作
- 针对速率限制和API错误实现完善的错误处理
For Analytics & Business Features
分析与商业功能指南
- Ensure you have appropriate business account access
- Use analytics endpoints to track Pin performance
- Aggregate metrics across date ranges for reporting
- Implement caching to avoid unnecessary API calls
- 确保拥有对应的商业账户访问权限
- 使用分析端点跟踪Pin的表现
- 按日期范围聚合指标以生成报告
- 实现缓存以避免不必要的API调用
Best Practices
最佳实践
- Token Security: Never expose access tokens in client-side code or version control
- Rate Limiting: Implement exponential backoff for rate limit errors
- Pagination: Use cursor-based pagination for large result sets
- Webhooks: Consider using webhooks for real-time updates instead of polling
- Scopes: Request only the minimum OAuth scopes needed for your application
- 令牌安全:切勿在客户端代码或版本控制中暴露访问令牌
- 速率限制:针对速率限制错误实现指数退避策略
- 分页处理:对大型结果集使用基于游标的分页
- Webhooks:考虑使用Webhooks实现实时更新,而非轮询
- 权限范围:仅请求应用所需的最小OAuth权限范围
Common Patterns
常见模式
Pagination
分页处理
bash
undefinedbash
undefinedInitial request
Initial request
curl -X GET "https://api.pinterest.com/v5/boards/{BOARD_ID}/pins?page_size=25"
-H "Authorization: Bearer {ACCESS_TOKEN}"
-H "Authorization: Bearer {ACCESS_TOKEN}"
curl -X GET "https://api.pinterest.com/v5/boards/{BOARD_ID}/pins?page_size=25"
-H "Authorization: Bearer {ACCESS_TOKEN}"
-H "Authorization: Bearer {ACCESS_TOKEN}"
Follow-up with bookmark from response
Follow-up with bookmark from response
curl -X GET "https://api.pinterest.com/v5/boards/{BOARD_ID}/pins?page_size=25&bookmark={BOOKMARK}"
-H "Authorization: Bearer {ACCESS_TOKEN}"
-H "Authorization: Bearer {ACCESS_TOKEN}"
undefinedcurl -X GET "https://api.pinterest.com/v5/boards/{BOARD_ID}/pins?page_size=25&bookmark={BOOKMARK}"
-H "Authorization: Bearer {ACCESS_TOKEN}"
-H "Authorization: Bearer {ACCESS_TOKEN}"
undefinedBulk Operations
批量操作
python
undefinedpython
undefinedCreate multiple pins efficiently
Create multiple pins efficiently
def bulk_create_pins(access_token, board_id, pin_data_list):
results = []
for pin_data in pin_data_list:
result = create_pin(
access_token,
board_id,
pin_data['title'],
pin_data['image_url']
)
results.append(result)
time.sleep(0.5) # Respect rate limits
return results
undefineddef bulk_create_pins(access_token, board_id, pin_data_list):
results = []
for pin_data in pin_data_list:
result = create_pin(
access_token,
board_id,
pin_data['title'],
pin_data['image_url']
)
results.append(result)
time.sleep(0.5) # Respect rate limits
return results
undefinedResources
资源链接
Official Documentation
官方文档
- Pinterest API v5 Docs: https://developers.pinterest.com/docs/api/v5/
- API Quickstart: https://github.com/pinterest/api-quickstart
- OAuth Documentation: https://developers.pinterest.com/docs/getting-started/authentication/
OAuth Scopes
OAuth权限范围
Common scopes you'll need:
- - Read board data
boards:read - - Create/update boards
boards:write - - Read pin data
pins:read - - Create/update pins
pins:write - - Read user account data
user_accounts:read - - Read ad account analytics (business accounts)
ads:read
常用权限范围:
- - 读取Board数据
boards:read - - 创建/更新Board
boards:write - - 读取Pin数据
pins:read - - 创建/更新Pin
pins:write - - 读取用户账户数据
user_accounts:read - - 读取广告账户分析数据(商业账户)
ads:read
Rate Limits
速率限制
- Pinterest implements per-user rate limiting
- Typical limits: 1000 requests per hour per user
- Rate limit headers in response:
X-RateLimit-LimitX-RateLimit-RemainingX-RateLimit-Reset
- Pinterest采用基于用户的速率限制
- 典型限制:每用户每小时1000次请求
- 响应中的速率限制头:
X-RateLimit-LimitX-RateLimit-RemainingX-RateLimit-Reset
Notes
注意事项
- Pinterest API v5 is the current version (as of 2025)
- All endpoints require authentication via OAuth 2.0
- Access tokens expire after 30 days
- Use refresh tokens to obtain new access tokens
- Business accounts have access to additional analytics features
- Video pins require special handling compared to image pins
- Some features require app review by Pinterest
- Pinterest API v5是当前最新版本(截至2025年)
- 所有端点均需通过OAuth 2.0认证
- 访问令牌有效期为30天
- 使用刷新令牌获取新的访问令牌
- 商业账户可访问额外的分析功能
- 视频Pin的处理与图片Pin不同,需使用特定端点
- 部分功能需经过Pinterest的应用审核
Troubleshooting
故障排除
"Invalid access token"
"Invalid access token"(无效访问令牌)
- Verify token hasn't expired (30-day lifetime)
- Use refresh token to obtain new access token
- Check Authorization header format:
Bearer {token}
- 验证令牌是否过期(有效期30天)
- 使用刷新令牌获取新的访问令牌
- 检查Authorization头格式是否正确:
Bearer {token}
"Insufficient permissions"
"Insufficient permissions"(权限不足)
- Verify OAuth scopes include required permissions
- Business features require verified business account
- Some operations require board/pin ownership
- 验证OAuth权限范围是否包含所需权限
- 商业功能需已验证的商业账户
- 部分操作需拥有对应Board/Pin的所有权
"Rate limit exceeded"
"Rate limit exceeded"(超出速率限制)
- Implement exponential backoff
- Cache responses when possible
- Use webhooks instead of polling
- Check header for retry time
X-RateLimit-Reset
- 实现指数退避策略
- 尽可能缓存响应结果
- 使用Webhooks替代轮询
- 查看头获取重试时间
X-RateLimit-Reset
"Media upload failed"
"Media upload failed"(媒体上传失败)
- Verify image URL is publicly accessible
- Check image meets size requirements (max 10MB)
- Ensure image format is supported (JPG, PNG, GIF)
- For video, use video-specific endpoints
- 验证图片URL是否可公开访问
- 检查图片是否符合大小限制(最大10MB)
- 确保图片格式受支持(JPG、PNG、GIF)
- 视频需使用视频专用端点
Updating
更新说明
This skill was generated from Pinterest's official API documentation. To get the latest API changes:
- Visit https://developers.pinterest.com/docs/api/v5/
- Check changelog for API updates
- Review deprecation notices
- Update OAuth scopes if new features added
本技能基于Pinterest官方API文档生成。获取API最新变更:
- 访问https://developers.pinterest.com/docs/api/v5/
- 查看API更新日志
- 查阅弃用通知
- 若新增功能,更新OAuth权限范围