/əʊ'fʌk/

OAuthic For Google APIs

最近在做一个服务,需要调用多个开放平台的 API。

对比了他们各自的 SDK 和一些 OAuth 2.0 请求库之后,决定自己封装一个。

OAuth 2.0 协议本身不复杂,但各家的实现各有千秋(尤其国内,尤其某「类推特」网站)。因此这套库的方式是,设计好统一的 API,然后针对各个不同服务实现具体的代码。

目前已经完成了 Google API新浪微博的封装。使用很简单:

// 准备
var client = require('oauthic-google').client({
    clientId: '你的 Client ID'
  , clientSecret: '你的 Client Secret'
  })
  .token('已有的 Access Token', expiresAt)
  .refresh('你的 Refresh Token', function (token, expiresAt, next) {
    // saveToDb(token)
    return next()
  })
  .expired(function (token) {
    // log(token + ' has expired and could not be refreshed.')
  })

// 请求
client.get('/mirror/v1/timeline', function (err, res, timeline) {
  // ...
})

主要特点:

  • 基于强大的 mikeal/request 库封装,请求接口简洁明了
  • 请求 URL 简化,可以用 /mirror/v1/timeline,也可以用完整的 https://www.googleapis.com/mirror/v1/timeline
  • 其它等你去发掘

Enjoys!