博客后台 API 说明文档
发布博文
API 请求地址
https://i.cnblogs.com/openapi/v1/posts
curl 请求命令示例
curl -X POST -i https://i.cnblogs.com/openapi/v1/posts \
-H "Authorization: Bearer xxxxxx" \
-H "Authorization-Type: pat" \
-H "Content-Type: application/json" \
-d '{"title": "测试博文标题", "body": "测试博文内容"}'
用于身份认证的 token (PAT, Personal Access Token),在账号中心的 Access Tokens 中创建
通过 Authorization: Bearer <token> 请求头进行身份认证
通过 Authorization-Type: pat 请求头标识 token 类型是 PAT
http post 请求 json 数据的序列化类型(C#代码)
public class CreatePostDto
{
// 博文标题(必填项)
[Required]
public string Title { get; set; }
// 博文内容(必填项)
[Required]
public string Body { get; set; }
// 博文类型(非必填项),可填 BlogPost 或 Article,默认是 BlogPost(如果传 int 型,值是 1 )
public PostType PostType { get; set; } = PostType.BlogPost;
// 博文摘要(非必填项)
public string Description { get; set; }
// 博客内容格式,可填 Markdowon 或 Html,默认是 Markdowon
public PostFormat PostFormat { get; set; } = PostFormat.Markdown;
// 友好地址名(非必填项)
public string Slug { get; set; }
// 是否发布博文(非必填项),默认值是发布
public bool IsPublished { get; set; } = true;
// 是否允许评论(非必填项),默认允许
public bool IsAllowComments { get; set; } = true;
// 是否标识内容由 AI 生成,默认不标识
public bool IsAigc { get; set; } = false
// 分类
public string[] Categories { get; set; }
// 标签
public string[] Tags { get; set; }
}
客户端调用示例代码(C#)
using System.Net.Http.Headers;
using System.Net.Http.Json;
var token = "[Personal Access Token]";
var httpClient = new HttpClient();
httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token);
httpClient.DefaultRequestHeaders.Add("Authorization-Type", "pat");
var blogPost = new
{
Title = $"测试博文标题 at {DateTime.Now}",
Body = $"测试博文内容 ----- {DateTime.Now}",
PostFormat = "Markdown",
IsAigc = true,
Categories = new string[] { "cate-test-1", "cate-test2-2" },
Tags = new string[] { "tag-test-1", "tag-test-2" },
};
var response = await httpClient.PostAsJsonAsync(
"https://i.cnblogs.com/openapi/v1/posts",
blogPost);
Console.WriteLine($"Status code: {(int)response.StatusCode}({response.StatusCode})");
Console.WriteLine("Reponse text: " + await response.Content.ReadAsStringAsync());
成功发布博文的 json 响应内容
{
"value": {
"postId": 19246558,
"postUrl": "https://www.cnblogs.com/cmt/p/19246558"
},
"success": true,
"message": ""
}
检查博文的审核状态
API 请求地址(请求方法:POST)
https://i.cnblogs.com/openapi/v1/posts/reviewStatus:check
通过博文 url 检查审核状态的 json 请求数据示例
{
"Url": "https://www.cnblogs.com/cmt/p/21663595"
}
通过博文 id 检查审核状态的 json 请求数据示例
{
"PostId": 21663595
}
请求响应 json 数据示例
{
"value": {
"postId": 21663595,
"url": "https://www.cnblogs.com/cmt/p/21663595",
"reviewStatus": 1,
"description": "审核通过"
},
"success": true,
"message": ""
}
通过 reviewStatus 获取审核状态:
0表示待审核1表示审核通过2表示审核不通过
查询企业博客额度信息
API 请求地址(请求方法:GET)
https://i.cnblogs.com/openapi/v1/corp/info
请求响应内容示例
{
"value": {
"blogUrl": "https://www.cnblogs.com/cmt",
"totalCount": 10, // 总额度
"restCount": 6, // 剩余额度
"usedToday": 4 // 当天消耗的额度
},
"success": true,
"message": ""
}
浙公网安备 33010602011771号