用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/rawveg/skillsforge-marketplace --skill tumblr命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
正在显示 SKILL.md
| name | tumblr |
| description | Tumblr API Development and Integration |
Comprehensive assistance with Tumblr API development, authentication, and integration. This skill provides practical guidance for building applications that interact with Tumblr's platform.
This skill should be triggered when:
Retrieve basic blog metadata including title, description, and post count:
curl -H 'User-Agent: MyApp/1.0' \
'https://api.tumblr.com/v2/blog/staff.tumblr.com/info?api_key=YOUR_API_KEY'
Response includes: Blog title, URL, post count, description, avatar, theme settings.
Retrieve the 5 most recent posts from a blog:
curl -H 'Authorization: Bearer YOUR_ACCESS_TOKEN' \
'https://api.tumblr.com/v2/blog/staff.tumblr.com/posts?limit=5'
Query parameters:
limit: 1-20 posts per requestoffset: Pagination offsettag: Filter by tagnpf=true: Request Neue Post FormatExchange authorization code for access token:
curl -X POST https://api.tumblr.com/v2/oauth2/token \
-F grant_type=authorization_code \
-F code=YOUR_AUTH_CODE \
-F client_id=YOUR_CONSUMER_KEY \
-F client_secret=YOUR_CONSUMER_SECRET
Scopes: basic, write, offline_access
Fetch blog avatar image URL:
curl 'https://api.tumblr.com/v2/blog/staff.tumblr.com/avatar/128'
Available sizes: 16, 24, 30, 40, 48, 64, 96, 128, 512 (default: 64)
Get posts liked by a blog:
curl -H 'Authorization: Bearer YOUR_ACCESS_TOKEN' \
'https://api.tumblr.com/v2/blog/staff.tumblr.com/likes?limit=20&offset=0'
Parameters: limit, offset, before (timestamp), after (timestamp)
Retrieve queued posts:
curl -H 'Authorization: Bearer YOUR_ACCESS_TOKEN' \
'https://api.tumblr.com/v2/blog/myblog.tumblr.com/posts/queue'
Reorder queue:
curl -X POST https://api.tumblr.com/v2/blog/myblog.tumblr.com/posts/queue/reorder \
-H 'Authorization: Bearer YOUR_ACCESS_TOKEN' \
-d 'post_id=123456789'
Retrieve blog followers:
curl -H 'Authorization: Bearer YOUR_ACCESS_TOKEN' \
'https://api.tumblr.com/v2/blog/myblog.tumblr.com/followers'
Response includes: Total follower count, follower blog objects with names and URLs.
Retrieve posts with specific tag:
curl -H 'User-Agent: MyApp/1.0' \
'https://api.tumblr.com/v2/blog/staff.tumblr.com/posts?api_key=YOUR_KEY&tag=photography&limit=10'
All Tumblr API responses follow this structure:
{
"meta": {
"status": 200,
"msg": "OK"
},
"response": {
"blog": { },
"posts": [ ]
}
}
Three interchangeable identifier formats:
# Blog name
/v2/blog/staff/info
# Hostname
/v2/blog/staff.tumblr.com/info
# UUID (stable, persistent)
/v2/blog/t:0aY0xL2Fi1OFJg4YxpmegQ/info
Recommendation: Use UUID for long-term stability (survives blog renames).
api_key query parameterPer IP Address:
Per Consumer Key:
Action Limits:
Legacy Post Types:
Neue Post Format (NPF):
type: blocks or is_blocks_post_format: truenpf=true parametercontent (blocks), layout (specifications), trail (reblog chain)Post IDs are 64-bit integers. Important: Use id_string field for JavaScript or languages with unsafe integer handling.
User-Agent: Mandatory for all requests. Must be consistent. Format: AppName/Version
Content-Type: Required for POST/PUT with body. Accepted:
application/jsonapplication/x-www-form-urlencodedmultipart/form-dataThis skill includes comprehensive documentation in references/:
Use the view command to read specific reference files when detailed information is needed.
Start with public endpoints - No authentication needed:
/v2/blog/{blog}/info?api_key={key}/v2/blog/{blog}/posts?api_key={key}Register your application:
api_key for public endpointsTest with API Console:
Choose OAuth version:
OAuth 2.0 flow:
Authorization: Bearer {token} headerOAuth 1.0a flow:
Neue Post Format (NPF):
npf=true to any post-returning endpointPagination:
offset for numeric paginationbefore/after with timestamps for chronological navigation_links object for next/previous URLsPartial responses:
fields parameter to specify blog object fieldsJSONP support:
jsonp=callbackName to GET requests# Step 1: Redirect user to authorization URL
https://www.tumblr.com/oauth2/authorize?client_id={key}&response_type=code&scope=basic%20write&state={random}
# Step 2: User authorizes, Tumblr redirects back with code
# Your redirect URL receives: ?code={auth_code}
# Step 3: Exchange code for access token
curl -X POST https://api.tumblr.com/v2/oauth2/token \
-F grant_type=authorization_code \
-F code={auth_code} \
-F client_id={consumer_key} \
-F client_secret={consumer_secret}
# Step 4: Use access token in requests
curl -H 'Authorization: Bearer {access_token}' \
'https://api.tumblr.com/v2/user/info'
{
"meta": {
"status": 401,
"msg": "Unauthorized"
},
"response": [ ],
"errors": [
{
"title": "Unauthorized",
"code": 401,
"detail": "OAuth authentication required"
}
]
}
Common status codes:
# Fetch all posts using pagination
offset=0
limit=20
while true; do
curl "https://api.tumblr.com/v2/blog/staff.tumblr.com/posts?api_key={key}&limit=${limit}&offset=${offset}"
offset=$((offset + limit))
# Check if response contains fewer than 'limit' posts, then break
done
tumblr.jstumblr_clienttumblr/tumblrpytumblrjumblrTMTumblrSDKtumblr/tumblr.goid_string for JavaScriptmeta.status before processing responsehttps://api.tumblr.com/v2/To refresh this skill with updated documentation:
基于 SOC 职业分类