如何在Ruby on Rails中集成Baklib API

一个10分钟教程,教大家如何用Rails新建一个项目,把本地的数据同步到Baklib网站上。

通过API将文章推送至Baklib上面的主要流程

  1. 注册账号
  2. 获取Token
  3. 创建栏目
  4. 创建文章

注册账号

若您已有 Baklib 账号则可省略此步骤

  1. 注册账号请点击此处

获取Token

若您已有 Baklib 的有效 Token 则可省略此步骤

说明:Token 是每个用户的唯一标识符,只有用正确的 Token 才能使用 Baklib API 服务

获取 Token 流程请点击此处

创建栏目

说明:栏目承载了您自己的文章

示例代码:

require 'faraday'
require 'json'
host = 'https://www.baklib.com/'
token = '<Token>'
client_id = '<ClientId>'

client = Faraday.new(url: host) do |conn|
  conn.headers['Authorization'] = "Bearer #{token}"
  conn.headers['Content-Type'] = 'application/json'
  conn.adapter :net_http
  conn.params = {tenant_id: client_id}
end

create_channel_params = {
  name: '我的第一个栏目'
}
channel_res = client.post("/api/v1/channels", create_channel_params.to_json)

# 创建成功后 API 返回 channel 详细信息,在后续的操作中我们需要用到其中的 channel_id
# 
channel_id = JSON.parse(channel_res.body)['message']['id']

创建文章

说明: 目前 API 仅支持 markdownparagraph 格式内容,默认是 paragraph 格式

示例代码:

article_content = "# 竞品分析\n\n## 1 概述\n### 1.1 行业市场概况\n\n\n可通过以下方式获取行业相关信息\n\n- 从公司内部市场、运营部门、管理层等收集信息;\n\n- 行业媒体平台新闻及论坛及QQ群,搜索引擎;比如艾瑞咨询,APPAnnie.\n\n- 行业专家博客、微博、微信公众账号订阅。\n\n- 关注行业平台信息,订阅行业信息(市场直接竞争者机率不大,但盈利模式和功能定义用户群体具备一定的前瞻性和市场趋势导向性)\n\n\n\n### 1.2 产品定位\n确定不同形式和行业的用户对产品的不同诉求,明确用户需求\n\n\n### 1.3 目标人群\n[对产品的用户群体划分,核心用户、主流用户、大众用户以及用户比例构成]\n目标用户,用户目标,用户规模,现有用户画像, 用户活跃度,用户反馈,使用场景等方面。\n\n\n### 1.4 公司背景和战略\n> 公司战略一定程度上决定了产品的形态,以及产品的程度\n\n对于产品的战略,一般公司不会暴露出自己的意图的,一般产品也就是出于盈利、占据市场份额、抢占先发优势、战略卡位、打造品牌知名度这几类,基本都是基于商业价值的考虑。考虑战略定位要考虑如下内容,包括:公司信息,发展规划,关键业务,核心资源,价值主张,客户关系,渠道,重要伙伴,客户细分,成本结构,收入来源。\n\n\n## 2 产品分析\n### 2.1 产品功能\n产品基本信息,产品定位,产品优势,产品功能逻辑,主要功能、产品功能,产品渠道(平台)等方面进行分析。\n\n\n### 2 产品交互设计\n产品交互和设计关联很大,主要是截图对比交互和设计内容。包含:主要风格,色彩体系,布局结构,品质感,字体,功能页面比较。\n\n\n### 2.3 技术分析\n通过移动App举例,\n技术分析包含:应用大小,启动时长,功能页面加载时长,CPU、内存消耗,崩溃率,版本迭代速度等。 这需要根据不同产品进行不同的技术分析。\n\n### 3 核心功能点对比\n对产品的核心功能以及主要功能进行分析,为新产品的功能设计或优化提供参考\n\n\n## 4 竞品特征\n包括产品的特色功能,以及其中涉及的一些核心技术\n\n\n## 5 竞品问题\n通过缺点的对比分析比对,对产品方案,需求等方面的调整有很大的帮助\n\n\n## 6 市场策略\n做市场策略包含内容也不少,包含:市场细分,市场规模,营销渠道,市场反馈。\n\n\n## 7 盈利模式\n**包含内容:**付费用户构成、付费逻辑、盈利现状、盈利发展;\n**举例:**一是服务费(按月、季度或年)、二是打包销售(这套服务给你,一次性付我多少钱)、三是按效果付费(每成一单,按照约定的进行返点);或者这三套混合使用\n**查询渠道**:产品与用户分析;如果是上市公司,就看财报吧\n\n\n## 8 后续规划\n如何去判断竞争对手的发展规划,可以去查这个公司的招聘信息,其实通过公司的招聘信息能了解到这个公司不少东西。 这个公司最近哪个职位或者哪个平台大量招人,说明公司的发展方向网这么方面转移,或者是最近公司助力发展的。\n\n\n## 9 总结\n\n\n"


params = {
  tenant_id: client_id,
  name: 'Baklib竞品分析',
  channel_id: channel_id,
  tag_list: ['标签1', '标签2'],
  content: article_content,
  # 内容格式,默认 paragraph
  content_type: 'markdown'
  # 文章状态, 0:草稿,1:发布
  status: 0
}
response = client.post("/api/v1/articles", params.to_json)
JSON.parse(response.body)

以上就成功在站点内创建了一片文章了