如果你想将最新写的文章投稿给专栏 首页投稿 ,程序员 和 Web前端之路。只需在浏览器开发者工具的控制台中拷贝如下代码,并运行。
submitArticle(14726) // 14726 是首页投稿的id
submitArticle(3) // 3 是程序员 id
submitArticle(65506) // 65506 是Web前端之路的id
/*
* 给专栏投稿
* @params collectionId: 专题id
* @params articleIndex: 投稿文章序号。默认值是最新文章的序号。最新文章的序号是 0,第二新的 是 1,以此类推。
*/
function submitArticle(collectionId, articleIndex = 0) {
var collection
var article
fetchCollectionInfo(collectionId).done(data => {
collection = data
fetchArticleList(collection.id).done(articles => {
article = articles[articleIndex]
$.ajax({
url: `http://www.jianshu.com/notes/${article.id}/submit`,
type: 'post',
data: JSON.stringify({
collection_id: collection.id
}),
contentType: 'application/json'
}).done(data => {
alert(`${article.title} 投稿 ${collection.title} 成功!`)
}).fail(data => {
alert(`${article.title} 投稿 ${collection.title} 失败:${data.responseJSON.error}`)
})
}).fail(data => {
dfd.reject(data)
})
})
}
// 获取我的文章列表
function fetchArticleList(collectionId) {
return $.ajax({
url: `http://www.jianshu.com/collections/${collectionId}/contribute_notes?page=1`,
})
}
// 获取专栏信息
function fetchCollectionInfo(id) {
var dfd = $.Deferred()
$.ajax({
url: `http://www.jianshu.com/subscriptions/${id}`,
}).done(data => {
dfd.resolve(data.source)
}).fail(data => {
dfd.reject(data)
})
return dfd.promise()
}
如果你要用上面的程序给其他专栏投稿,只需执行 submitArticle(专栏id)
。
见下图
找专题的id.png
我们在给某个专题投稿时,浏览器向服务器发送了如下请求:
投稿地址
代码做的事是