Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/philippkueng/ntumblr
Tumblr REST client API for node.js
https://github.com/philippkueng/ntumblr
Last synced: 8 days ago
JSON representation
Tumblr REST client API for node.js
- Host: GitHub
- URL: https://github.com/philippkueng/ntumblr
- Owner: philippkueng
- License: other
- Created: 2012-05-17T19:40:05.000Z (over 12 years ago)
- Default Branch: master
- Last Pushed: 2012-05-17T21:41:34.000Z (over 12 years ago)
- Last Synced: 2024-10-12T04:52:43.928Z (about 1 month ago)
- Language: CoffeeScript
- Homepage:
- Size: 4.57 MB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Tumblr REST client API for node.js
Inspired by [ ntwitter ](https://github.com/AvianFlu/ntwitter).
## Installation
npm install ntumblr
### Setup API
`consumerKey` and `consumerSecret` can be obtained from [Tumblr](http://www.tumblr.com/oauth/apps).
`accessTokenKey` and `accessTokenSecret` can be obtained via [OAuth](http://www.tumblr.com/docs/en/api/v2#oauth): instruction is [ below ](#access-token).
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 poststumblr.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 poststumblr.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](http://www.tumblr.com/docs/en/api/v2#posts)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](#access-token)**# Create the url-strings first to check against
$ python test/assets/tumblrv2api.py test/assets/photo.jpg
$ mocha
$ mocha test/tumblr # only test against tumblr1. Copy `config-sample.json` to `config.json`
2. Get `consumerKey` and `consumerSecret` from [Tumblr](http://www.tumblr.com/oauth/apps), then add to the `config.json`
3. Run simple server by `coffee server` then go to `http://localhost:3000` to allow the app.
4. Check your `config.json`. it should have access tokens in place.
5. You can run test by `$ mocha` :)-------------------------------------------------
`by mnmly`