本文介绍 Ruby China API 的基础知识,以及用户认证的方式。

访问域名

OAuth 2 / API 认证

在使用 API 之前,你需要 注册应用 并获得可以 OAuth App 信息。并使用标准的 OAuth 2 实现登录,获得 access_token 信息。

OAuth 路径

Response 说明

所有 Response 采用 JSON 格式返回,请求状态通过 HTTP Status 返回。

HTTP Status

错误的情况 Response Body 一定会是这样的格式: { "error" : "Error message" }

资源权限描述

在部分 API 的 response 内容里面你会看到 abilities 节点,这是特别标识当前 access_token 对应的用户对此资源的权限。
请参考源代码,确定那些路径是需要用户认证的,需要用户认证的路径,你需要带上 access_token=? 参数。
例如:
{
  "topic": {
    "id": 256170,
    ....,
    "abilities": { "update": true, "destroy": true }
  }
}

演示

我们用 Ruby 演示一下访问 /api/v3/hello.json 这个路径,其中包含 OAuth 2 的流程。
这里用到 RubyGem oauth2
require "oauth2"
client = OAuth2::Client.new('client id', 'secret', site: 'https://ruby-china.org')
access_token = client.password.get_token('username', 'password')
res = Faraday.get("https://ruby-china.org/api/v3/hello.json?access_token=#{access_token.token}")
puts res.status
puts res.body
最后输出
{ 'current_user' : 'username' }