Sign Up for Free

RunKit +

Try any Node.js package right in your browser

This is a playground to test code. It runs a full Node.js environment and already has all of npm’s 400,000 packages pre-installed, including ntumblr with all npm packages installed. Try it out:

var ntumblr = require("ntumblr")

This service is provided by RunKit and is not affiliated with npm, Inc or the package authors.

ntumblr v0.0.41

Tumblr REST client API for node.js.

Tumblr REST client API for node.js

Inspired by ntwitter .

Installation

npm install ntumblr

Setup API

consumerKey and consumerSecret can be obtained from Tumblr.

accessTokenKey and accessTokenSecret can be obtained via OAuth: instruction is below .

Minimal server that returns your accessTokenKey and accessTokenSecret can be found at /server/app.coffee

Tumblr = require('ntumblr')

tumblr = new Tumblr
  consumerKey:       'TumblrConsumerKey'
  consumerSecret:    'TumblrConsumerSecret'
  accessTokenKey:    'AccessTokenKey'
  accessTokenSecret: 'AccessTokenSecret'

Usage

Get blog info

tumblr.get 'info', (err, data, response)->
  blogInfoData = JSON.parse( data ).response.blog
  { title,
    posts,
    name,
    url,
    updated,
    description,
    ask,
    ask_anon,
    likes } = blogInfoData

Get posts

tumblr.get 'posts', (err, data, response)->
  postsData = JSON.parse(data).response.posts
  postsData.forEach (post)->
    {
      blog_name,
      id,
      post_url,
      type,
      date,
      timestamp,
      format,
      reblog_key,
      tags,
      highlighted,
      note_count,
      title,
      body,
    } = post

Get text posts

tumblr.get 'posts', type: 'text', (err, data, response)->
  postsData = JSON.parse(data).response.posts

Get one text post

Other request parameters can be found at Request Parameters

filterParam =
  type: 'text'
  limit: 1

tumblr.get 'posts', filterParam, (err, data, response)->
  postData = JSON.parse(data).response.posts[0]

Creating new Text Post as draft

Requires AccessTokenKey and AccessTokenSecret

postObj =
  type: 'text'
  title: 'Demo Post'
  body: 'Having a nice day :D'
  status: 'draft'

tumblr.post postObj, (err, data, response)->
  {
    meta,
    response
  } = JSON.parse(data)

  if meta.status is 201 then console.log meta.msg is 'Created'
  newPostId = response.id

Creating new Photo Post

Requires AccessTokenKey and AccessTokenSecret

postObj =
  type: 'photo'
  data: [fs.readFileSync('photo.jpg')]

tumblr.post postObj, (err, data, response)->
  {
    meta,
    response
  } = JSON.parse(data)

  if meta.status is 201 then console.log meta.msg is 'Created'
  newPostId = response.id

Test

Make sure you have got access tokens

# Create the url-strings first to check against
$ python test/assets/tumblrv2api.py test/assets/photo.jpg
$ mocha
$ mocha test/tumblr # only test against tumblr

Getting Access Tokens

  1. Copy config-sample.json to config.json and fill required fields
  2. Run simple server by coffee server then go to http://localhost:3000 to allow the app.
  3. Check your config.json. it should have access tokens in place.
  4. You can run test by $ mocha :)

by mnmly

RunKit is a free, in-browser JavaScript dev environment for prototyping Node.js code, with every npm package installed. Sign up to share your code.
Sign Up for Free