"场景是 solo 里发了文章没有同步到 hacpai (老生常谈的问题了啊 - - ! 然后根据内容 API 开放,欢迎各位独立博客主进行连接这篇文章的内容作了一个同步小脚本 1. 使用跨域模式开启浏览器 (以 chrome 为例) 跨域模式开启方法 因为有一个接口调用跨域了,所以要使用跨域模式 2. 获取需要同步的文 .."

直接调接口同步 Solo 和 Hacpai 的文章

场景是 solo 里发了文章没有同步到 hacpai (老生常谈的问题了啊 - - !

然后根据内容 API 开放,欢迎各位独立博客主进行连接这篇文章的内容作了一个同步小脚本

1. 使用跨域模式开启浏览器 (以 chrome 为例)

跨域模式开启方法 因为有一个接口调用跨域了,所以要使用跨域模式

2. 获取需要同步的文章 id

接口和对应字段如图

3. 在控制台中执行以下代码

const _ajax = (url, cb, opt) => {
  $.ajax(Object.assign({
    url: url,
    dataType: 'json',
    success: cb
  }, opt))
}

const getArticle = ({
  id,
  host
}) => {
  return new Promise((resolve, reject) => {
    _ajax(`${host}/console/article/${id}`, (data) => resolve(data))
  }).then(res => {
    return {
      id: id,
      title: res.article.articleTitle,
      permalink: res.article.articlePermalink,
      tags: res.article.articleTags.map(t => t.tagTitle).join(','),
      content: res.article.articleContent
    }
  })
}

const getClient = ({
  id,
  host
}) => {
  return new Promise((resolve, reject) => {
    _ajax(`${host}/console/preference/`, (data) => resolve(data))
  }).then(res => {
    return {
      key: res.preference.keyOfSolo,
      title: res.preference.blogTitle,
      host: host,
      email: res.preference.adminEmail
    }
  })
}

const connect = (data) => {
  return new Promise((resolve, reject) => {
    _ajax(`https://rhythm.b3log.org/api/article`, (data) => resolve(data), {
      method: 'post',
      data: JSON.stringify(data),
      contentType: 'application/json;charset=utf-8'
    })
  })
}

(async function (config) {
  const article = await getArticle(config)
  const client = await getClient(config)
  const result = await connect({
    article,
    client
  })
  console.log(result)
})({
  id: '这里替换成文章 id',
  host: '这里写你的 solo 博客的域名,比如我的是 https://blog.hduzplus.xyz'
})

4. 执行完成后

应该就能同步过来了吧 - - (祈祷🙏

  • Solo

    Solo 是一款小而美的开源博客系统,专为程序员设计。

    Solo 有着非常活跃的社区,可将文章作为帖子推送到社区,来自社区的回帖将作为博客评论进行联动。

    这是一种全新的网络社区体验,让热爱记录和分享的你不再感到孤单!
    具体细节请浏览 B3log 构思

    602 引用 • 4663 回帖 • 722 关注
感谢    关注    收藏    赞同    反对    举报    分享
回帖    
请输入回帖内容...